Как получить все предметы в Elasticsearch за определенное значение - PullRequest
1 голос
/ 10 мая 2019

Я хочу синхронизировать индекс Elasticsearch с другим источником данных. Чтобы получить данные базы данных я могу сделать:

select _id, md5 FROM history

Какой самый быстрый способ сделать это в ES? Я пытался использовать API прокрутки, но он кажется невероятно медленным, имея ограничение в 10 КБ:

es.search(index='history', _source=['_id', 'md5'], size=10000))

Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 11 мая 2019

API прокрутки может использоваться параллельно с использованием ломтиков .Теоретически это позволит ускорить N раз с N срезами.

Медленная прокрутка связана с тем, что Elasticsearch необходимо выполнить полное сканирование .

Для синхронизации Elasticsearch и других БД я бы порекомендовал иметь некоторую очередь документов перед Elasticsearch, которая отправляла бы документы в Elasticsearch и другие компоненты.Примером такой очереди документов будет Apache Kafka .Насколько мне известно, не существует механизма, который позволял бы отправлять новые обновления документов из Elasticsearch стороннему компоненту.

Надеюсь, это поможет!

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