Solr 4 — Отсутствующие компоненты свертывания полей

#solr #grouping #fieldcollapsing

#solr #группировка #свертывание полей

Вопрос:

согласно Solr Wiki (http://wiki.apache.org/solr/FieldCollapsing ) свертывание полей должно быть доступно в Solr 4. Насколько я знаю, необходимо добавить следующую конфигурацию в solrconfig.xml чтобы активировать свертывание полей:

 <searchComponent name="query"
     class="org.apache.solr.handler.component.CollapseComponent" />
  

Я загрузил последнюю сборку nightly apache-solr-4.0-2011-10-26_08-46-59.zip от https://builds.apache.org/job/Solr-trunk /, обновил мой проект с lucidworks solr 3.2 до apache solr 4.x и, наконец, обнаружил, что класс org.apache.solr.handler.component.CollapseComponent недоступен внутри apache-solr-core-4.0-2011-10-26_08-46-59.jar .

Может кто-нибудь указать мне правильное направление, где найти недостающие компоненты?

С наилучшими пожеланиями и заранее благодарен, Тоби

Ответ №1:

Свертывание полей Solr было выпущено как часть стабильной версии 3.3
, поэтому вы можете использовать последнюю стабильную сборку 3.4 Solr, в которую должны быть включены компоненты.
Кроме того, он не требует включения каких-либо специальных компонентов.
При передаче group=trueamp;group.field=some_field он должен работать без каких-либо изменений.

Комментарии:

1. Спасибо за эту подсказку. Я проверил обе версии 3.3 и 3.4. Ни в 3.4, ни в 3.3 упомянутый класс CollapseComponent доступен внутри основного файла jar. В части lucene дистрибутива solr lucene-grouping-xxx.jar доступен, но не компоненты группировки solr. Есть еще идеи?

2. группировка не требует никаких дополнительных компонентов. Таким образом, вы можете начать работу без каких-либо изменений конфигурации, просто передав дополнительные параметры запроса. Классы для группировки были распределены между артефактами Solr и lucene.

3. Хм, хорошо, группировка должна работать из коробки с Solr 3.4. Я протестировал ее и попытался свернуть файл «normstufe», который настроен таким образом и обычно имеет содержимое:

4. тип = «строка», индексированный = «истина», сохраненный = «Истина». Анализ запроса выглядит следующим образом: webapp =/путь поиска =/выберите параметры ={fl = *, оценка и начало = 0amp;q=*:*amp;group.field=normstufeamp;group=trueamp;wt= xmlamp;rows= 20amp;version= 2.2} хиты =982 статус = 0 QTime = 109. Во время поиска я получаю исключение: javax.xml.stream.XMLStreamException: ошибка синтаксического анализа в [строке, кол]: [3,91060] Сообщение: ошибка чтения значения: LST в org.apache.solr.client.solrj.impl.XMLResponseParser.readArray(XMLResponseParser.java:324). Я застрял.

5. group=trueamp;group.field=normstufe должен возвращать сгруппированные значения. normstufe должно быть индексированным полем. Используете ли вы клиент Solrj?