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
带复合查询的Solrnet q参数问题_Solr_Solrnet - Fatal编程技术网

带复合查询的Solrnet q参数问题

带复合查询的Solrnet q参数问题,solr,solrnet,Solr,Solrnet,我们使用Solrnet根据用户可以选择的一组选项(例如短语、确切短语)向Solr发出复合查询。排除、邻近等。我们将根据使用SolrQueryField API选择的选项创建单个查询,并使用SolrMultipleCriteriaQuery和and运算符组合查询。但当我们将查询提交给Solr时,提交的q参数在所有术语中都添加了+号: q=(ContentSearch:(roman)+AND+ContentSearch:("test+case")+AND+-ContentSearch:(wine)+

我们使用Solrnet根据用户可以选择的一组选项(例如短语、确切短语)向Solr发出复合查询。排除、邻近等。我们将根据使用SolrQueryField API选择的选项创建单个查询,并使用SolrMultipleCriteriaQuery和and运算符组合查询。但当我们将查询提交给Solr时,提交的q参数在所有术语中都添加了+号:

q=(ContentSearch:(roman)+AND+ContentSearch:("test+case")+AND+-ContentSearch:(wine)+AND+(ContentSearch:(A)+OR+ContentSearch:(B))+AND+ContentSearch:("catacombs+wine"~5)+AND+ContentSearch:([10+TO+20]))}

+和+或“测试+案例”或+和+-或10+到+20正在搞乱查询解析器。以前有人遇到过这种情况吗?solrnet向solr发送请求时是否与url编码有关?

如果您使用的是solrnet 0.4.0,则可以在SolrQueryField上设置可选参数
Quoted=false
这将停止QueryField的默认行为以转义特殊字符。

我已经这样做了。。。。但它仍然表现出同样的行为。不知道为什么它会在每个查询子句中,甚至在查询词之间添加+。啊,我明白了。我不知道它为什么要在每个查询子句中添加+。可能是嵌入到SoRNET中的一些特殊字符逃逸。基于SLRNET谷歌组上的一个问题,你可以考虑使用EDISMAX,让SoR为你处理事情。正如Mauricio Scheffer所提到的,“+”字符只是在URL请求中编码的一个空间。