Ich würde sehr empfehlen, Ihre Elasticsearch Version, wenn möglich, zu aktualisieren, es seit 0.9.x. wesentliche Änderungen
Diese Frage ist nicht spezifisch genug, da es viele Möglichkeiten gibt, wie ElasticSearch diese Funktionalität erfüllen kann, und sie unterscheiden sich geringfügig von Ihrem Gesamtziel. Wenn Sie versuchen, diese SQL-Abfrage genau zu replizieren, dann verwenden Sie in diesem Fall die Wildcard-Abfrage oder die Präfix-Abfrage.
Mit einer wildcard Abfrage:
Hinweis: mit Wildcard Durchsuchungen Seien Sie vorsichtig, sie sind langsam. Vermeiden Sie die Verwendung von Platzhaltern am Anfang der Zeichenfolgen.
GET /my_index/table_name/_search
{
"query": {
"wildcard": {
"field_name": "a*"
}
}
}
Oder Prefix query
GET /my_index/table_name/_search
{
"query": {
"prefix": {
"field_name": "a"
}
}
}
Oder partial matching:
Hinweis: Sie NICHT blind Teilübereinstimmung verwenden, während es Ecke Fälle sind, die Nutzung, die richtige Verwendung von Analysatoren ist fast immer besser.
Auch diese genaue Abfrage entspricht LIKE '%a%'
, die wiederum mit der richtigen Verwendung von Mapping und einer normalen Abfrage-Suche besser eingerichtet werden könnte!
GET /my_index/table_name/_search
{
"query": {
"match_phrase": {
"field_name": "a"
}
}
}
Wenn Sie diese fragen, lesen über ES in ähnlicher Weise für Suche-as-you-type Abfrage würde ich vorschlagen, auf edge-ngrams Lesen auf, die auf die ordnungsgemäße Verwendung der Abbildung beziehen sich je nachdem, was Sie zu tun versuchen =)
0,90.7 ist eine sehr (sehr) alte Version von ES. Ich schlage vor, die neueste Version zu verwenden. –
Bitte lesen Sie auch die [Dokumentation] (https://www.elastic.co/guide/en/elasticsearch/guide/current/partial-matching.html)! Es deckt viele Anwendungsfälle ab und bietet verschiedene Lösungen für das, was Sie brauchen. –