#elasticsearch
#эластичный поиск #elasticsearch
Вопрос:
Мне было интересно, имеет ли смысл кэшировать результаты поиска ElasticSearch в базе данных MySQL. Конечно, не все (например, нет запросов на автозаполнение), но, возможно, поисковые запросы / результаты, которые запрашиваются очень-очень часто.
Или есть лучший способ кэшировать непосредственно внутри ElasticSearch?
Комментарии:
1. запрос mysql был бы намного тяжелее по сравнению с запросом elastic. Вы можете создать другой индекс для результатов поиска, который может хранить все ваши недавние поиски.
2. Я бы никогда не использовал MySQL в качестве кэша (или любой другой СУБД, если на то пошло), есть так много других технологий, которые оптимизированы для кэширования. Приведу лишь некоторые из них: memcached, redis, etcd
Ответ №1:
Поскольку вы не указали свой точный вариант использования и свои запросы, поэтому сложно предоставить конкретный ответ, но в целом это не очень хорошая идея кэшировать ответ ES в MySQL, и, по моему личному опыту, никто не видел, чтобы это делал.
переходим к другой части вашего вопроса
есть ли лучший способ кэшировать непосредственно внутри ElasticSearch?
да, это очень возможно, и Elasticsearch предоставляет различные типы кэшей, такие как кэш запроса общего доступа или кеш фильтра, который используется в зависимости от конфигурации и характера вашего запроса.
Вы могли бы заглянуть в cache blog, чтобы получить больше информации и задать конкретные вопросы, если хотите повысить производительность своих поисковых запросов.
Комментарии:
1. Спасибо за ответ! Итак, можно ли сказать, что в целом не имеет смысла кэшировать ответы ES в любой другой системе кэширования, потому что у ES есть свой собственный кэш, который следует использовать вместо этого?
2. Да, @FrankDrebin, у ES есть свои собственные кеши. Что бы хорошие ребята из Elastic ни сочли достойным кэширования, они нашли способ кэшировать это, а что бы ни было не кэшировано, что ж, вероятно, на то есть причина. Однако ваш вариант использования может отличаться от общих, и для вас может иметь смысл подойти к кэшированию по-другому.
3. Хорошо. И активен ли какой-либо кэш запросов ES «из коробки» или это что-то, что должно быть настроено явно?
4. @FrankDrebin это из коробки, и вы можете взглянуть на ссылки в моем ответе, чтобы увидеть, как вы можете их точно настроить
5. @FrankDrebin с удовольствием
![]()