Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/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
使用SolrJ构造包含AND/OR的复杂SolrQuery对象_Solr_Lucene_Solrj - Fatal编程技术网

使用SolrJ构造包含AND/OR的复杂SolrQuery对象

使用SolrJ构造包含AND/OR的复杂SolrQuery对象,solr,lucene,solrj,Solr,Lucene,Solrj,如何使用SolrJ构造包含ANDs/OR的复杂SolrQuery对象 例如: SolrQuery ss = new SolrQuery().setQuery("(a:1 AND (b:2 OR -c:3))"); 这当然可以,但是我希望递归地构建查询,而不是一个长的查询字符串。以下是我尝试过的: SolrQuery sq0 = new SolrQuery().setParam("a", "1"); SolrQuery sq1 = new SolrQuery().setParam

如何使用SolrJ构造包含ANDs/OR的复杂SolrQuery对象

例如:

SolrQuery ss = new SolrQuery().setQuery("(a:1 AND (b:2 OR -c:3))");
这当然可以,但是我希望递归地构建查询,而不是一个长的查询字符串。以下是我尝试过的:

    SolrQuery sq0 = new SolrQuery().setParam("a", "1");
    SolrQuery sq1 = new SolrQuery().setParam("b", "2").setParam("-c", "3");
    SolrQuery sq = new SolrQuery();
    sq.add(sq0);
    sq.add(sq1);
这不起作用,因为sq等于a=1&b=2&-c=3,这不是我想要的

这是在SolrNet的背景下提出的一个问题。我想知道SolrJ是否也可以做类似的事情。

关于:a:1和b:2或-c:3,你说这会起作用。你确定吗?一般来说,像b:2或-c:3这样的查询并不像人们期望的那样工作。我更希望该查询也能得到相当于a=1&b=2&-c=3的结果。可能是我遗漏了什么,你看到这个查询在实践中正确运行了吗?是的,setQuerya:1和b:2或者-c:3似乎对我来说确实有效。URL显示为/select?q=a:1%20和%20b:2%20或%20-c:3,我得到了预期的文档集。当然,要正确解析查询,空格是必需的。一般来说,我正在寻找一种使用SolrJ构造和/或运算符的方法。如果这是不可能的,那么我希望有一个相当于它的东西。