0

我们使用 Solrnet 根据用户可以选择的一组选项向 Solr 发出复合查询,例如短语、精确短语。排除、接近等。我们基于使用 SolrQueryByField 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]))}

+AND+ 或 "test+case" 或 +AND+- 或 10+TO+20 弄乱了查询解析器。有没有人遇到过这个?solrnet 向 solr 发送请求时,是否与 url 编码有关?

4

1 回答 1

0

如果您使用 SolrNet 0.4.0,您可以在 SolrQueryByField 上设置一个可选参数,Quoted=false这将停止 QueryByField 的默认行为以转义特殊字符。

于 2013-02-19T16:20:01.197 回答