Маркер Solr/Lucene

Мы в настоящее время работаем над подтверждением концепции клиентского использования Solr и смогли настроить все функции, которые они хотят кроме выигрыша.

Проблема состоит в том, что они хотят очки, которые заставляют результаты упасть в блоках:

  • Блок 1: точное совпадение на категории (выигрывают = 4),
  • Блок 2: точное совпадение на имени (выигрывают = 3),
  • Блок 3: частичное соответствие на категории (выигрывают = 2),
  • Блок 4: частичное соответствие на имени (выигрывают = 1),

Первая вещь, которую мы сделали, была, разрабатывают пользовательский класс подобия, который возвратил бы корректный счет в зависимости от поля и точного или частичного соответствия.

Единственная проблема теперь состоит в том, что, когда документ соответствует на обоих категории и называет очки, добавляются вместе.

Пример: поиск "ресторана" возвращает документы в ресторане категории, которые также имеют ресторан слова на их имя и таким образом получают счет 5 (4+1), но они должны только добраться 4.

Я принимаю, чтобы это работало, мы должны были бы разработать пользовательский класс Маркера, но у нас нет подсказки о том, как включить это в Solr. Другая опция состоит в том, чтобы создать пользовательскую реализацию SortField, подобную RandomSortField, уже существующему в Solr.

Возможно, существует даже простое решение, о котором мы не знаем.

Все приветствующиеся предложения!

11
задан TFor 14 June 2010 в 08:21
поделиться

2 ответа

2
ответ дан 3 December 2019 в 10:03
поделиться

Счетчик - это часть запросов Lucene, использующих метод запроса "вес".

Короче говоря, фреймворк вызывает Query.weight (..). Scorer (..). Взгляните на

http://lucene.apache.org/java/2_4_0/api/org/apache/lucene/search/Query.html

http://lucene.apache.org/java/2_4_0 /api/org/apache/lucene/search/Weight.html

http://lucene.apache.org/jva/2_4_0/api/org/apache/lucene/search/Scorer.html

Чтобы использовать ваш собственный класс Query в Solr, вам необходимо реализовать свой собственный solr QueryParserPlugin, который использует ваш собственный QParser, который генерирует ваш ранее реализованный запрос lucene. Затем вы можете использовать его в Solr, указанном здесь:

http://wiki.apache.org/solr/SolrPlugins#QParserPlugin

Эта часть реализации должна оставаться простой, поскольку это всего лишь некоторый склеивающий код.

Наслаждайтесь взломом Solr!

3
ответ дан 3 December 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: