Elasticsearch Multi Match Query
TexDie Elasticsearch Multi-match Query (Link zur Doku: www.elastic.co/docs/reference/query-languages/query-dsl/query-dsl-multi-match-query) ist eine sehr nützlicher Suchanfragetyp, mit der man gleichzeitig in mehreren Feldern eines Dokuments suchen kann.
Mit dem „type“ „cross_fields“ werden die Felder dabei wie ein einziges großes Feld behandelt. Dabei wird nach jedem Wort aus dem Suchbegriff in jedem Feld gesucht und das in einer einzigen Query. Für jeden Treffer wird der Score des Ergebnisses erhöht. Durch eine Gewichtung einzelner Felder kann man manche Felder als „wichtiger“ einstufen als andere.
Wir verwenden das sehr erfolgreich in unseren Leasingsystemen für Suchen auf Fahrzeugmodelldaten.
Die Modelldaten sind als Dokumente in Elasticsearch hinterlegt. Ein „freier“ Suchtext mit den verschiedensten Modellinformationen (Marke, Modell, Treibstoffart, Preis etc.) wird dann auf diese Daten mit einer „Cross Fields“ Query gematched. Dabei werden Datenfelder wie z.B. die Marke höher gescored als weniger „modellidentifizierende“ Felder. Dies liefert meistens das gewünschte Modell bzw. auch vergleichbare Modelle.
