Неправильные результаты, появляющиеся в эластичном поиске, должны соответствовать запросу
У меня есть следующий анализатор в поле поиска:
GET _analyze
{
"tokenizer": "standard",
"filter": [ "word_delimiter","lowercase", {"type" : "shingle",
"min_shingle_size" : 2,
"max_shingle_size" : 4,
"output_unigrams" : true}, {"type" : "pattern_replace",
"pattern" : " ",
"replacement" : ""} ],
"text": "One marium malik 270"
}
Эластичный поисковый запрос:
{
["index"]=>
string(19) "_dev"
["from"]=>
int(0)
["size"]=>
int(60)
["body"]=>
array(3) {
["query"]=>
array(1) {
["bool"]=>
array(3) {
["should"]=>
array(2) {
[0]=>
array(1) {
["bool"]=>
array(1) {
["must"]=>
array(3) {
[0]=>
array(1) {
["match"]=>
array(1) {
["searched_text"]=>
array(2) {
["query"]=>
string(4) "marium"
["fuzziness"]=>
string(4) "AUTO"
}
}
}
[1]=>
array(1) {
["match"]=>
array(1) {
["searched_text"]=>
array(1) {
["query"]=>
string(3) "malik270"
}
}
}
}
}
}
[1]=>
array(1) {
["bool"]=>
array(1) {
["should"]=>
array(1) {
[0]=>
array(1) {
["match"]=>
array(1) {
["manu_no"]=>
array(2) {
["query"]=>
string(14) "marium malik270"
["boost"]=>
int(10)
}
}
}
}
}
}
}
["minimum_should_match"]=>
int(1)
}
}
["sort"]=>
array(1) {
["sp"]=>
array(2) {
["mode"]=>
string(3) "min"
["order"]=>
string(4) "desc"
}
}
}
}
Когда я ищу вышеупомянутые ключевые слова, я получаю несколько не относящихся к делу результатов.
Не относящиеся к делу результаты включают в себя:
marium malik 97
marium malik Plus TN
marium malik PLUS OG
и т.п.
Но, если я удаляю 'malik', отделяю его в другом запросе:
must: match searched_keyword: 'malik'
must: match searched_keyword: '270'
и оставьте число в этом запросе в одиночку, тогда он отлично работает.
В чем может быть проблема?