2017-01-29 4 views
0

Я довольно новичок в поиске elastics и уже люблю его.Как найти связанные ключевые слова с elasticsearch?

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

Я уже читал эту статью: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html.

Больше похоже на этот запрос (запрос MLT) находит документы, которые «похожи» на данный набор документов.

Это уже больше, чем я. Мне не нужны похожие документы, но только связанные/похожие ключевые слова.

Так что скажем, у меня есть индекс документов о фильмах, и я начинаю запрос о «крестном отце». Затем elasticsearch должен предлагать соответствующие ключевые слова - например, «al pacino» или «Marlon Brando», потому что они, вероятно, будут встречаться в тех же документах.

любые идеи, как это можно сделать?

ответ

0

К сожалению, нет встроенного способа сделать это в Упругие. Что бы вы могли сделать, это написать программу, которая будет запрашивать Elastic, возвращать сопоставленные документы, тогда вы получите данные _source или просто получите их из исходного источника данных (например, DB или файла), позже вам понадобится рассчитать TF-IDF за каждый термин в извлеченных и как-то объединить все вместе, чтобы получить наверх K Условия от всех возвращенных условий.

+0

круто спасибо за ваши идеи. Я предположил, что для этого уже есть функция, но теперь мы как-то будем работать. Что вы думаете об использовании инвертированного индекса? Допустим, у меня есть два ключевых слова, которые встречаются в одном и том же наборе документов. Тогда разумно предположить, что они тесно связаны между собой. Но я боюсь, что для этого потребуется много ресурсов. Когда у меня есть 1M ключевые слова, и я хочу узнать, насколько тесно они связаны, для этого потребуется много мощности машины, я думаю. –