Solr 列出所有记录,但首先列出 fq 匹配的记录

Solr 列出所有记录,但首先列出 fq 匹配的记录

我正在使用带有 DIH jdbc 连接器的 solr 4.0。我有一个字段,该字段code由多个值组成,用分号 (;) 分隔。我试图列出与字段查询 (fq) 匹配的搜索结果,这些结果列在顶部,其余结果列在下面。因此,这不仅仅是一个仅列出匹配查询 (fq) 的过滤查询,而且匹配的查询应该首先列出,其余结果应该稍后列出。为了更清楚,下面是一个例子,

让 id、name、code 成为字段名称:

id=1
name=pebbles
code=465;888;256

id=2
name=paradise
code=802;326;786

id=3
name=blue sea
code=888;221

id=4
name=taj
code=123;568;332

我使用 Solr Admin,当我在 fq 中搜索时code:*888*,如下所示,

q=*:*
fq=code:*888*   (I also tried code:[*888* TO *])

它只列出了两条记录(id 为 1 和 3),其中每条记录在代码字段中都与 888 匹配。但这不是我在本例中想要的,我希望它列出所有(四条)记录,并将顶部记录列为 fq 匹配记录。

我希望按以下顺序列出

id=1
name=pebbles
code=465;888;256

id=3
name=blue sea
code=888;221

id=2
name=paradise
code=802;326;786

id=4
name=taj
code=123;568;332

有人知道吗?任何有相关指导的人都会非常有帮助!

谢谢你!

答案1

OR有两种方法可以解决此问题,edismax

Solr 管理员:

或者

q=*:* OR code:*888*

(http://192.168.1.10:8983/solr/core10/select?q=*%3A*+OR+code%3A*888*&wt=xml)

埃迪斯马克斯

q=*:*
Check the box "edismax"
bq=code:*888*

(http://192.168.1.10:8983/solr/core10/select?q=*%3A*&wt=xml&defType=edismax&bq=code%3A*888*)

相关内容