Я тестирую, как работают свойства match_phrase_prefix и max extension в Elasticsearch. Ссылаясь на документацию по максимальному расширению:
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase-prefix.html
Затем он просматривает отсортированный словарь терминов, чтобы найти первые 50 терминов.
которые начинаются с f, и добавляет эти термины к фразе запроса.
Итак, я добавил 3 документа в свой тестовый индекс:
- пробует Elasticsearch
- пробует Elasticsearch2
- пробует Elasticsearch3
Затем, когда я пытаюсь выполнить запрос с max_expansion, установленным в 2, я получаю все документы вместо 2.
GET /_search
{
"query": {
"match_phrase_prefix" : {
"message" : {
"query" : "trying out E",
"max_expansions" : 2
}
}
}
}
Результат:
{
"took": 11,
"timed_out": false,
"_shards": {
"total": 34,
"successful": 34,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 3,
"max_score": 1.7260926,
"hits": [
{
"_source": {
"message": "trying out Elasticsearch2"
}
},
{
"_source": {
"message": "trying out Elasticsearch"
}
},
{
"_source": {
"message": "trying out Elasticsearch3"
}
}
]
}
}