#solr #lucene
#solr #lucene
Вопрос:
У меня есть строковое многозначное поле, каждый документ может содержать до 6000 значений для этого поля, значения являются просто идентификаторами, т. Е. буквенно-цифровым идентификатором из одного слова.
Во время запроса я добавляю запрос фильтра (fq) для фильтрации документов, которые имеют определенный идентификатор в многозначном поле. Я сталкиваюсь с проблемой производительности, из-за которой запрос занимает ~ 2-4 секунды, но когда я использую запрос фильтра для однозначного поля, я получаю результат в течение ~ 1 секунды. Есть ли какой-либо способ улучшить производительность запроса?
Schema.xml Записи
Я использую динамическое поле
Запрос
fq=(mvfield1_strin&_mv:aa123 Или mvfield2_strin&_mv:bb456)
Заранее спасибо
Редактировать:
Я попытался увеличить кэш запросов фильтра, коэффициент попадания равен 0,95, но это все еще занимает около 4 секунд. Кроме того, использование памяти минимально, поэтому я не вижу необходимости увеличивать выделение памяти
Комментарии:
1. Общее количество терминов обычно более релевантно, чем многозначное поле. Если фильтры часто идентичны, кэш фильтров значительно ускорит работу — в противном случае начальный запрос обычно занимает больше всего времени, а все последующие запросы ускоряются из-за кэширования диска ОС, возможно, вам также придется предоставить Solr больше памяти для работы, чтобы он мог хранить больше индекса в памяти вместо того, чтобы каждый раз обращаться к диску.
2. @MatsLindh, спасибо за ваш ответ, увеличение размера кэша фильтра не помогло, пожалуйста, найдите изображение, прикрепленное к вопросу, а также использование памяти минимально