2016-03-24 9 views
1

Warum ist es, wenn Sie eine query_string-Abfrage für ein Feld, die Groß-und Kleinschreibung nicht beachten und eine Platzhalter-Abfrage Groß-und Kleinschreibung beachten? Ich hätte gedacht, die beiden würden sich ähnlich verhalten.ElasticSearch: Warum ist query_string Groß- und Kleinschreibung nicht beachten?

Diese query_string Abfrage gibt Ergebnisse

{ 
    "query": { 
    "bool" : { 
     "must" : [ { 
     "query_string" : { 
      "query" : "name:*HILTON*" 
     } 
     } ] 
    } 
    } 
} 

Wo, wie diese Wildcard-Abfrage nicht

{ 
    "query": { 
    "bool" : { 
     "must" : [{ 
     "wildcard" : { 
      "name" : "*HILTON*" 
     } 
     } ] 
    } 
    } 
} 

Antwort

4

Dies liegt daran, Wild card query Werke für not analyzed Felder aus.

Gemäß der Dokumentation:

Das Präfix, Wildcard und regexp Abfragen arbeiten zu Bedingungen. Wenn Sie sie verwenden, um ein analysiertes Feld abzufragen, untersuchen sie jeden Begriff im Feld und nicht das Feld als Ganzes.

Die Wildcard-Abfrage stimmt mit Dokumenten überein, deren Felder einem Platzhalterausdruck entsprechen (nicht analysiert).

Verwandte Themen