ElasticSearch: есть ли способ вставить новые документы во все индексы после предыдущего SearchRequest?

У меня есть несколько индексов ElasticSearch, разделенных на несколько компьютеров, в которые я загружаю журналы с помощью logstash. Я выставляю данные через REST API. Уровень API выполняет поиск по нескольким терминам (с использованием ElasticSearch Java API) и предоставляет пользователю результаты.

Теперь, если пользователь просматривает результаты в браузере, могут быть загружены новые журналы, соответствующие тем же запросам и фильтрам, которые сейчас просматривает пользователь. Я хотел бы, чтобы уровень API был уведомлен о появлении новых элементов, соответствующих запросу. Итак, если я получаю тот же запрос API, я могу отправить обратно только новые данные (дельта) или отправить ответ HTTP 304 «Не изменено».

Я просмотрел percolator API, но это не так. похоже, не делает то, что я хочу - кажется, он дает список запросов, с которыми будет совпадать данный документ, который должен быть вставлен. Мои требования таковы:

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

Есть ли способ сделать это масштабируемым образом?


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)


Существует популярное «Change API» предложение в системе отслеживания проблем Elasticsearch, но оно еще не реализовано. - есть некоторые серьезные проблемы с реализацией, и он зависит от некоторых других задач.

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

Я надеюсь, что мы, наконец, сможем сделать эту функцию доступной в одном из следующих основных выпусков ES.

person Konstantin V. Salikhov    schedule 11.08.2014

Будет ли это то, что вы ищете Elastic Поиск X-Pack.

person SparkleGoat    schedule 16.10.2017