Правильно ли я использую script?

Добрый день! У меня есть порядка 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 документа из другого индекса.

GET /my-index/_search
{
    "query" : {
        "percolate" : {
            "field": "query",
            "index" : "my-index",
            "id" : "2",
            "version" : 1 
        }
    }
}

Понял, если под "структурой" подразумеваются ваши запросы, то с запросами с has_child и has_parent действительно работать не будет, я думал вы про структуру самого индекса перколятора говорите. Тогда перколятор, действительно, отпадает. Я бы тогда хранил эти запросы как документы в поле с типом "object" и "enabled":"false".

https://www.elastic.co/guide/en/elasticsearch/reference/7.5/docs-get.html#get-source-filtering

Помимо es, у нас еще есть mysql, так что я не вижу смысла использовать es в роли БД. Просто я хотел оптимизировать работу сохранив поисковые шаблоны и не таскать гигабайты запросов, а так разницы нет, что из мускуля получать, что из эластика.

Спасибо за помощь и с наступающим Новым Годом!

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.