我有属于更高层次的专辑对象我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的默认行为是面在点击率最高到最低的顺序显示。但是我想要实现的是根据最高命中为专辑的相关性进行排序的小名单。
例如对这个词的搜索“伤心”可能会显示一重击的“血糖性魔法”一个面,有也可以称为“伤心小丑的歌”,其中有10个命中的相册。 “悲伤小丑的歌曲”将显示,即使它可能是“下桥”为最相关的歌曲出现的第一个方面。
我的问题是我怎么能得到所有方面回来,但然后让他们通过在它们的歌曲的相关性排序?如果我需要改变或延长一些潜在SOLR代码将是什么?
提前致谢。
Solr的只能在字典顺序或数排序方面(见facet.sort parameter)。
如果你想实现一个不同的排序顺序我在SimpleFacets class开始。
最后,我们决定这样做,而无需修改SOLR源代码最简单的方法,将查询的Solr,索要面,然后遍历这些结果。
不理想,但工程现在。
你可以使用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