Проверьте сходство документов Elasticsearch перед индексацией

Хорошо, после того, как я весь день стаскиваю свои волосы, пытаясь выяснить это, я решил получить некоторую поддержку сообщества.

Следует отметить, что я довольно плохо знаком с Elasticsearch.

Идея состоит в том, что у меня есть индекс ES, содержащий некоторые документы, и мне нужно индексировать новые документы, только если уже не проиндексированы ни один из существующих документов с аналогичным содержимым поля (но не обязательно равным).

Я могу выполнить запрос на совпадение для нескольких полей и получить глобальную оценку для запроса, но, поскольку эта оценка не является процентом от максимальной доступной оценки, я не уверен, как установить пороговое значение, чтобы определить, могу ли я вставить документ или нет,

Я, очевидно, немного смущен системой начисления баллов за ES. Заранее спасибо за всю помощь, которую я могу получить в этом.

РЕДАКТИРОВАТЬ:

В качестве основного примера

Это уже проиндексировано:

{
  "title": "My first blog entry",
  "text":  "Just trying this out...",
  "date":  "2014/01/01"
}

Это новое, но не должно индексироваться, так как поля не равны, но слишком похожи:

{
  "title": "My first blog entries",
  "text":  "Just trying it out...",
  "date":  "2014/01/01"
}

Это новое и должно быть проиндексировано:

{
  "title": "My second entry for this blog",
  "text":  "I am just trying out a few things",
  "date":  "2014/01/01"
}

Так что это в основном дедупликация предшествующей индексации и основанная на сходстве полей, что я после:)

1 ответ

Решение

Идеальным решением для ваших потребностей является more_like_this запрос.

В таком запросе вы можете предоставить искусственные документы в like поле, которое будет сопоставлено с документами в вашем индексе для сходства. По умолчанию они будут использовать все доступные поля, но вы также можете выбрать ограниченное количество полей для сравнения.

В большинстве случаев этот запрос используется для извлечения документов, похожих на один или несколько документов, которые пользователь может просматривать или которые он выбрал. Тем не менее, вы, вероятно, можете использовать эту функцию для анализа оценки возвращенных документов (если таковые имеются) и принять решение о том, индексировать ваш документ или нет.

Пожалуйста, обратитесь к странице документации, связанной выше, для полного списка параметров.

Другие вопросы по тегам