Расчет формулы Lucene Elastic Search с использованием Java - PullRequest
0 голосов
/ 16 января 2019

Впервые в Elastic search, используя индекс для хранения документов, например, Это информация компании о сотрудниках, в настоящее время в индексе есть 600 000 данных о сотрудниках, среди которых нам нужно вычислить расчеты расстояния на основе определенного атрибута, такого как адрес. По сути, мы делаем следующие шаги:

  • Извлечь все документы из индекса в Java-программу.
  • Используйте Lambdas для параллелизма и итерации по каждому документу, а затем рассчитайте расстояние (lavenshtien, NGram и TFID) с другими элементами в коллекциях и затем усредните значение.

Проблема с этим потоком состоит в том, что мы загружаем все документы, присутствующие в индексе, в память Java, а затем применяем формулы, это отнимает много времени как для загрузки, так и для применения формул, более того, JVM будет иметь ограничение памяти для загрузить документы в память.

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

Спасибо за помощь ...

1 Ответ

0 голосов
/ 16 января 2019

Существует тип данных вasticsearch для географических точек: https://www.elastic.co/guide/en/elasticsearch/reference/current/geo-point.html

если вы можете преобразовать адрес, который у вас есть, в его координаты широты / долготы, либо он у вас есть, либо использовать службу, которая разрешает адреса к географической точке, то вы можете сопоставить это поле географической точки с точкой привязки geo_point (в шаблон индекса, см. ссылку, которую я вставил выше, например). если вы не отобразите поле на geo_pointasticsearch, оно будет обрабатываться как массив чисел с плавающей точкой.

Как только у вас появится поле с географической точкой, вы можете запустить на нем несколько агрегаций расстояний. Есть три агрегата, которые работают с полями типа geo_point. см. варианты здесь: https://www.elastic.co/guide/en/elasticsearch/guide/current/geo-aggs.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...