2015-05-08 5 views
2

Как (если это вообще возможно) можно вставить любой вектор-указатель в индекс ElasticSearch?Определенные пользователем термины в ElasticSearch

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

Почему?

Ну, например, хотя ES дает возможность kNN (k-ближайших соседей) для k = 2, в контексте географической близости, у него нет явной функциональности k> 2. Если бы мы смогли вставить наши собственные векторы-векторы, мы могли бы взломать k> 2-функциональность, используя встроенные методы индексирования текста в ES.

Любые указания по этому вопросу?

ответ

0

Насколько я знаю, нет способа сделать это с помощью elasticsearch (я все еще ищу самый быстрый подход поиска в режиме реального времени KNN, elasticsearch - один из моих выборов).

Elasticsearch основан на инвертированном индексе, поэтому каждый член в векторе термина (который может исходить из предложения) будет индексироваться в отсортированном списке. Когда мы ищем запрос, запрос будет анализироваться в векторе term, а elasticsearch (на самом деле lucene) будет искать индексы для каждого термина.

Но KNN требует вычисления расстояния между двумя векторами, даже если они не имеют одного и того же термина, традиционный инвертированный индекс не предназначен для этого требования.

Как вы уже сказали, elasticsearch может осуществить в реальном масштабе времени поиска Knn при к = 2 по гео запроса, но я не думаю, что это может поддержать к> 2.

Кстати, если вы обнаружили, любой подход, который может помочь реализовать поиск KNN в режиме реального времени, что K может быть очень большим числом (100000?) и огромным набором данных (количество векторов), скажите, пожалуйста, thx :)

Смежные вопросы