У меня все в эластичном поиске, но решение этой проблемы для меня немного сложнее. Если у меня есть массив слов, как я могу искать документы, которые имеют строковое поле, которое содержит, скажем, 90% этих слов?
например,
iKnowTheseWords = ["word1","word2","word3","word4","word5","word6","word7","word8","word9"]
documents = [
{
"id": "1",
"content": "word1 word2 word3 word4 word5 word6 word7 word8 word9 word10"
},
{
"id": "2",
"content": "word1 word2 word3 word4"
},
{
"id": "3",
"content": "word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 word11 word12 word13 word14"
}
]
В приведенном выше примере Я хотел бы, чтобы документы с идентификаторами 1 и 2 были возвращены, но не 3, поскольку в нем больше слов, чем я знаю, и выше порога 90% (документ 1 в порядке, поскольку я знаю 90% этих слов).
Очевидно, что есть способы решить эту проблему программным путем, однако я бы хотел, чтобы это было возможно на уровне запросов эластичного поиска.
Спасибо за любую помощь заранее.