Analysator beim Abfragen in elasticSearch definieren
Ich bin ziemlich neu bei elasticsearch und brauche nur ein paar Erläuterungen: Können wir einen Analyzer definieren, während wir den Suchserver abfragen? Ich habe es mit der Abfrage "Text" und "Feld" versucht und es funktioniert einwandfrei:
Abfrage:
curl -XPOST http://localhost:9200/test/user/_search? -d '{ "query" : {
"text" : {"_all" : {"query" :"Vaibhav","analyzer" :
"lowercase_keyword" }} } }'
Ergebnis:
{"took":144,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":1,"max_score":0.10848885,"hits":{"_index":"test","_type":"user","_id":"1","_score":0.10848885,
"_source" : {
"first_name": "Vaibhav",
"last_name":"saini",
"password":"pwd"
Wenn ich jedoch versuche, dasselbe mit der Abfrage von Begriff / Präfix / Platzhalter zu tun, erhalte ich die Ausnahme:
Abfrage:
curl -XPOST http://localhost:9200/test/user/_search? -d '{
"query" : { "term" : {"_all" : {"query" :"Vaibhav","analyzer" :
"lowercase_keyword" }} } }'
Ergebnis:
{"error":"SearchPhaseExecutionException[Failed to execute phase [query], total failure; shardFailures
{[kws9J6tbQtWCMNKBm3Gpkw][test][4]: SearchParseException[[test][4]:
from[-1],size[-1]: Parse Failure [Failed to parse source
[\n{\n\"query\" : {\n\"term\" : {\"_all\" : {\"query\"
:\"Vaibhav\",\"analyzer\" : \"lowercase_keyword\" }}\n}\n}]]]; nested:
QueryParsingException[[test] [term] query does not support [query]];
}{[kws9J6tbQtWCMNKBm3Gpkw][test][1]: SearchParseException[[test][1]:
from[-1],size[-1]: Parse Failure [Failed to parse source
[\n{\n\"query\" : {\n\"term\" : {\"_all\" : {\"query\"
:\"Vaibhav\",\"analyzer\" : \"lowercase_keyword\" }}\n}\n}]]]; nested:
QueryParsingException[[test] [term] query does not support [query]];
}{[kws9J6tbQtWCMNKBm3Gpkw][test][2]: SearchParseException[[test][2]:
from[-1],size[-1]: Parse Failure [Failed to parse source
[\n{\n\"query\" : {\n\"term\" : {\"_all\" : {\"query\"
:\"Vaibhav\",\"analyzer\" : \"lowercase_keyword\" }}\n}\n}]]]; nested:
QueryParsingException[[test] [term] query does not support [query]];
}]","status":500}
Ist es also so, als könnten wir keine Analysatoren definieren, während wir den Elasticsearch-Server nach bestimmten Arten von Abfragen abfragen und nach anderen, die wir können? Wenn nicht, mache ich etwas falsch?
Jede Hilfe wird sehr geschätzt.