Добрый день! У меня есть порядка 45 тыс. поисковых запросов (это шаблоны поиска сохраненные нашими пользователями)
Я хотел загрузить их в es и использовать search template для выполнения, однако, вставив порядка 13 тыс. скорость вставки сильно упала, и логика мне подсказывает, что я делаю что-то не правильно.
Предназначено ли скриптовое хранилище под такое количество данных?
Я планировал использовать их для отслеживания изменений в индексах. Т.е. по ним идет цикл и проверяет наличие новых данных, а что бы не тащить все данные за все время подставляются некоторые даты и параметры.
Конечно смотрел, но структура подразумевает дочерне родительские отношения документов, поичем дочерние документы появляются гораздо позже. Все это не позволяет мне пользоваться перколятором.
Я еще раз ознакомился с документацией, действительно, там ничего не сказано про это. Однако есть
At search time, the document specified in the request gets parsed into a Lucene document and is stored in a in-memory temporary Lucene index.
Как это работает с запросами содержащими has_child запросы?
Во вторых, для дочерних документов я исключаю текстовые поля из _source из-за их большого размера, так что извлечь их через GET не получится. Я сейчас говорю про пример который позволяет указать id документа из другого индекса.
Понял, если под "структурой" подразумеваются ваши запросы, то с запросами с has_child и has_parent действительно работать не будет, я думал вы про структуру самого индекса перколятора говорите. Тогда перколятор, действительно, отпадает. Я бы тогда хранил эти запросы как документы в поле с типом "object" и "enabled":"false".
Помимо es, у нас еще есть mysql, так что я не вижу смысла использовать es в роли БД. Просто я хотел оптимизировать работу сохранив поисковые шаблоны и не таскать гигабайты запросов, а так разницы нет, что из мускуля получать, что из эластика.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.