Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据最匹配的标准solr排序结果_Java_Search_Solr_Lucene_Solrj - Fatal编程技术网

Java 根据最匹配的标准solr排序结果

Java 根据最匹配的标准solr排序结果,java,search,solr,lucene,solrj,Java,Search,Solr,Lucene,Solrj,我使用solrjapi从solr获取结果 我的问题是这样的: solrQuery.addFilterQuery("connection:(${user.uniqueKey()}) OR followers: (${user.uniqueKey()}) OR company:(${currentCompanies})") 我想要的结果首先满足最大的标准,从连接,追随者,公司 i、 e.如果任何结果属于连接、追随者和公司,那么结果应该排在属于连接、追随者和公司的结果之前。您实际上最好不要使

我使用solrjapi从solr获取结果

我的问题是这样的:

  solrQuery.addFilterQuery("connection:(${user.uniqueKey()}) OR followers:
  (${user.uniqueKey()}) OR company:(${currentCompanies})")
我想要的结果首先满足最大的标准,从连接,追随者,公司


i、 e.如果任何结果属于连接、追随者和公司,那么结果应该排在属于连接、追随者和公司的结果之前。

您实际上最好不要使用筛选查询,这样您就可以执行以下操作:

yourField1:value1或yourField2:value2或yourField3:value3或yourField1:value1和yourField2:value2和yourField3:value3^100.0

您需要稍微使用它来获得正确的值


这里要做的是告诉Solr在AND搜索中为文档打分更高,但仍然返回符合OR搜索的结果。

记住FilterQueries不会影响分数。然而,实际查询中的术语会这样做,因此匹配更多术语的查询的排名高于匹配更少术语的查询。那么会有多少组合?@rahul你的组合取决于你想要完成什么。您应该能够将其余字段添加到OR子查询和and子查询中而不会出现问题,前提是您希望对所有这些字段执行OR搜索和and搜索。