使用SolrJ构造包含AND/OR的复杂SolrQuery对象
如何使用SolrJ构造包含ANDs/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
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构造和/或运算符的方法。如果这是不可能的,那么我希望有一个相当于它的东西。