Мне нужно вернуть документы, которые соответствуют как минимум N словам в одном предложении.
Я разделяю свои документы на предложения и индексирую каждый как отдельное значение, например:
PUT /test_index/_doc/id1
{
"texts": [
"Your first step is the subject line.",
"You will have just seconds to gain the full attention of your reader."]
}
и оставьте для position_increment_gap значение по умолчанию 100.
Допустим, мне нужно сопоставить минимум 2 слова. Мне нужно вернуть документ, если я ищу термины («бла», «внимание», «читатель»), но не («бла», «тема», «читатель»). «bla» отсутствует в документе, «внимание» и «читатель» находятся в одном предложении, «субъект» и «читатель» - нет. , поскольку этот запрос возвращает документ, хотя этого не должно быть:
"query" : {
"bool": {
"should": [
{"term": {"texts": "subject"}},
{"term": {"texts": "reader"}}
],
"minimum_should_match": 2
}
}
Мне нужен способ смешать близость и минимум должны совпадать. Есть ли способ добиться этого?