Быстрое извлечение ключевых слов в asticsearch
У меня есть большая база данных аннотаций изображений, хранящихся в базе данных эластичного поиска. Я хочу использовать эту базу данных для извлечения ключевых слов. Ввод текста (как правило, газетная статья). Моя основная идея алгоритма состоит в том, чтобы просмотреть каждый термин из статьи и использовать эластичный поиск, чтобы узнать, насколько часто этот термин встречается в аннотациях изображений. Затем выводите термины из статей, которые встречаются не часто (для того, чтобы предпочитать имена людей или мест обычным английским словам).
Мне не нужно что-то очень сложное, эти ключевые слова используются просто как предложение для пользовательского ввода, но я хочу что-то быстрее, чем запрашивать N поисковых запросов (где N - количество терминов в тексте), чтобы упростить поиск, который может быть медленным для больших текстов. Есть ли надежный и быстрый метод извлечения ключевых слов в asticsearch?
1 ответ
Для этого вы можете использовать эластичные агрегаты поисковых терминов. Они могут возвращать ключевые слова в пакетах с количеством документов, которые указывают их относительную частоту. Вот пример запроса в YML.
query:
match:
annotation:
query: text of your article
aggregations:
term_frequencies:
terms:
field: annotation