Мне нужно отсортировать аспекты, которые возвращаются из SOLR по релевантности - PullRequest
5 голосов
/ 17 мая 2010

В моем указателе объектов песни SOLR есть объекты альбома более высокого уровня. Пример показан ниже:

<song>
<album title>Blood Sugar Sex Magic</album title>
<song title>Under the Bridge</song title>
<description>A sad song about junkies</description>
</song>

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

Поведение по умолчанию для SOLR заключается в том, что фасеты отображаются в порядке от большинства попаданий до наименьшего. Однако я хочу добиться того, чтобы список фасетов был отсортирован в соответствии с релевантностью топ-хита для этого альбома.

Например, поиск по слову «грустный» может показать фасет с одним хитом «Blood Sugar Sex Magic», а также может быть альбом под названием «Грустные песни клоуна», в котором есть 10 хитов. «Грустные песни клоуна» покажутся в качестве первого аспекта, хотя может оказаться, что «Под мостом» подходит как самая релевантная песня.

Мой вопрос: как мне вернуть все грани, но затем упорядочить их по релевантности песен внутри них? Если бы мне нужно было изменить или расширить какой-либо базовый код SOLR, что бы это было?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 18 мая 2010

Solr может сортировать фасеты только в лексикографическом порядке или по количеству (см. Параметр facet.sort ).

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

1 голос
/ 18 июня 2010

В конце концов, мы решили, что самый простой способ сделать это без необходимости изменять исходный код SOLR - это запросить solr, запросить аспекты, а затем выполнить итерацию по результатам.

Не идеально, но пока работает.

0 голосов
/ 31 января 2019

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

https://lucene.apache.org/solr/guide/7_0/result-grouping.html

https://lucene.apache.org/solr/guide/7_0/the-extended-dismax-query-parser.html

...