ElasticSearch: има ли начин да получите нови документи, вмъкнати във всички индекси след предишна SearchRequest?

Имам множество индекси на ElasticSearch, разделени на множество машини, в които поглъщам регистрационни файлове, използвайки logstash. Излагам данните чрез REST API. API слоят търси няколко термина (с помощта на ElasticSearch Java API) и представя на потребителя резултатите.

Сега, ако потребителят разглежда резултатите в браузър, може да има погълнати нови регистрационни файлове, които съответстват на същите заявки и филтри, които потребителят гледа сега. Бих искал API слоят да бъде уведомен, че има нови елементи, които отговарят на заявката. Така че, ако получа същата заявка за API, мога да изпратя обратно само нови данни (делта) или да изпратя отговор HTTP 304 „Непроменен“.

Разгледах API на percolator, но това прави изглежда не прави това, което искам - изглежда, че дава на списъка със заявки даден документ, който предстои да бъде вмъкнат, ще съответства. Моите изисквания са следните:

  1. Същият потребител може да иска да провери за нови съобщения в журнала след няколко секунди или няколко дни.
  2. Множество потребители може да търсят едни и същи термини, но те ще бъдат в различни страници (ще внедря пагинация с помощта на SearchRequestBuilder.setSize API.) Така че променените елементи ще бъдат различни за различните потребители, тъй като са на различни страници от един и същ изход.

Има ли някакъв начин да направите това по мащабируем начин?


person ElasticSearchLearner    schedule 08.08.2014    source източник
comment
github.com/elasticsearch/elasticsearch/issues/1242   -  person Konstantin V. Salikhov    schedule 08.08.2014
comment
Ако можете да преместите това като отговор, ще приема това като отговор.   -  person ElasticSearchLearner    schedule 10.08.2014


Отговори (2)


Има популярно предложение за „Промяна на API“ в програмата за проследяване на проблеми на Elasticsearch, но все още не е внедрено - има някои големи проблеми с изпълнението и има зависимости от някои други задачи.

Има плъгин на трета страна, който се опитва да приложи тази функция, но изглежда неподдържан.

Надявам се, че най-накрая можем да имаме тази функция налична в някоя от следващите големи версии на ES.

person Konstantin V. Salikhov    schedule 11.08.2014

Това ли е нещото, което търсите Elastic Търсете X-Pack.

person SparkleGoat    schedule 16.10.2017