我用DIH jdbc连接器使用solr 4.0。 我有一个名为code的字段用分号(;)分隔的多个值。 我试图列出匹配字段查询(fq)的search结果列在顶部,其余应列在下面。 所以这不仅仅是一个filter查询来列出匹配的查询(fq),而是匹配的应该先列出,其余的结果应该在后面列出。 更清楚的是,下面是一个例子,
让ID,名称,代码是字段名称:
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
我使用Solrpipe理员,当我searchcode:*888*在fq中,如下所示,
q=*:* fq=code:*888* (I also tried code:[*888* TO *])
它只列出了两个logging(id的1和3),它们在代码字段中logging了888的匹配。 但这不是我在这种情况下寻找的,我希望它列出所有(四)logging与顶级logging作为fq匹配logging。
我希望它按以下顺序列出 ,
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
任何人有任何想法? 任何有相关指导的人都会非常有帮助!
谢谢!
这是用OR和edismax两种方式解决的
Solrpipe理员:
与或
q=*:* OR code:*888* (http://192.168.1.10:8983/solr/core10/select?q=*%3A*+OR+code%3A*888*&wt=xml)
与edismax
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*)