Как заставить эластичный поиск возвращать дубликаты, если в заголовке по крайней мере два слова (или 75% слов)?

#elasticsearch #duplicates

Вопрос:

Мне нужно найти дубликаты в базе данных названий произведений искусства. Если в названии более 2 слов, то я хотел бы, чтобы по крайней мере 2 слова совпадали (или по крайней мере 75% слов).:

«Портрет Дориана Грея» не должен соответствовать

«Портрет дамы», но он должен соответствовать

«Портрет Дориана Г.», а также

«Портрет Дориана Грея, сделанный в 1890 году»

Я использую нечеткое сопоставление для обнаружения орфографических ошибок и удаления маленьких слов, таких как «the», «of» и «a». В настоящее время любой заголовок с портретом будет совпадать с помощью эластичного поиска, поэтому мне нужен способ сообщить эластичному поиску, что по крайней мере два термина должны совпадать.

Ответ №1:

вполне уверен https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html это то, что вы ищете здесь