Установка данных dir динамически в solr - PullRequest
1 голос
/ 08 марта 2012

У меня есть система, которая анализирует журналы. Он уже использует Lucene для индексации данных. Теперь я хочу добавить к нему распределенный поиск, поэтому выбрал solr. Моя проблема идет таким образом, я запрашиваю поисковый термин "выход из системы". У меня есть 3 категории показателей - горячие, теплые и холодные. Горячее существует в виде текущих индексов, где теплое и холодное - в предыдущие дни.

Предположим, для запроса "logoff" у меня недостаточно результатов из горячего раздела, поэтому теперь мне нужно перейти в теплый раздел и затем поискать его. Даже если я не получу желаемый счет с теплом, мне придется искать через холод.

Так есть ли какой-нибудь способ, которым я могу оптимистично сделать это через solr, или я должен написать свою обертку поверх него, основываясь на параметре numFound? Короче говоря, я хочу расставить приоритеты для индексов и перейти к поиску с более низким приоритетом, только если не получены достаточные результаты из индексов с более высоким приоритетом.

1 Ответ

2 голосов
/ 08 марта 2012

Самое простое решение - все ваши данные в одном индексе с полем, содержащим тип данных: hot, warm или cold.Затем вы можете использовать edismax и присвоить разный вес различным значениям для типа.Таким образом, вы будете делать все с одним запросом, но вы всегда будете иметь все три типа данных в ваших результатах, с hot сверху, затем warm и затем cold.Другая проблема заключается в ежедневном переключении с hot на warm и warm на cold: это решение потребует повторной отправки всех ваших документов с указанием только типа поля, а это не то, что вам нужно.

В противном случае вы можете использовать три разных индекса, каждый на своем ядре solr, и переключаться на стороне клиента между одним ядром, а не другим.Таким образом, вы должны сделать более одного запроса.Затем вы можете взглянуть на возможность перестановки Solr CoreAdmin для переключения hot на warm и warm на cold.

...