Может кто-нибудь объяснить, почему я вижу такое поведение?
Я проиндексировал кучу документов, содержащих текстовое поле. Некоторые из документов содержат дублированный текст. При выполнении запроса more_like_this
возвращается только один из дубликатов документов. Эта проблема не возникает, когда индекс имеет один шард. С низким minimum_should_match
процентом оба документа возвращаются. С высоким minimum_should_match
процентом возвращается только один из документов. Как запрос more_like_this
может соответствовать документу в одном сегменте и не соответствовать документу с идентичным текстовым полем в другом фрагменте? Разве оба документа не должны совпадать по числу терминов? Я посмотрел на планы объяснения запроса и не увидел ничего, что указывало бы на то, почему я получаю «Неверное соответствие минимальному количеству необязательных предложений» за счет уменьшения процента minimum_should_match
. Документы содержат идентичный «полный текст»; почему они не соответствуют одинаковым терминам?
Вот запрос:
GET /bug/_search
{
"query": {
"more_like_this": {
"fields": [
"fullText"
],
"like": [
{
"_id": "6a0ce51874a777ea7772009d30e2c5f4eb3f0c58",
"_index": "bug"
}
],
"max_query_terms": 100,
"minimum_should_match": "75%",
"min_doc_freq": 0,
"min_term_freq": 0,
"include": true
}
},
"size": 100
}
Среда :asticsearch 6.8.0