arbeiten ich Elasticsearch ngramngrams ins Elasticsearch nicht
"analysis": {
"filter": {
"desc_ngram": {
"type": "ngram",
"min_gram": 3,
"max_gram": 8
}
},
"analyzer": {
"index_ngram": {
"type": "custom",
"tokenizer": "keyword",
"filter": [ "desc_ngram", "lowercase" ]
},
"search_ngram": {
"type": "custom",
"tokenizer": "keyword",
"filter": "lowercase"
}
}
}
Und ich habe zwei Objekte hier
{
"name": "Shana Calandra",
"username": "shacalandra",
},
{
"name": "Shana Launer",
"username": "shalauner",
},
Und mit dieser Abfrage
{
query: {
match: {
_all: "Shana"
}
}
}
Wenn ich mit dieser Abfrage zu suchen , es gibt mir beide Dokumente zurück, aber ich kann hier nicht nach einem Teil des Wortes suchen, zum Beispiel kann ich "Shan" anstelle von "Shana" in q nicht verwenden sehr, weil es nichts zurückgibt.
Vielleicht falsch mein Mapping ist, kann ich nicht verstehen Problem auf Mapping ist oder auf Abfrage
Das Problem besteht wahrscheinlich darin, dass Sie nach dem Feld '_all' suchen und der Standardanalysator für dieses Feld verwendet wird, sofern nicht anders angegeben. Versuchen Sie, speziell auf 'name' zu passen. Funktioniert es? – Val