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
Java 优化Solr搜索,获得精确匹配?_Java_Solr_Lucene - Fatal编程技术网

Java 优化Solr搜索,获得精确匹配?

Java 优化Solr搜索,获得精确匹配?,java,solr,lucene,Java,Solr,Lucene,下午的伙计们 对,我正在为一个使用Solr的网站构建一个相当复杂的搜索系统,尽管这个问题很简单,但我认为 我有两个搜索条件,位置和类型。我希望返回与类型完全匹配的结果(字母对字母,没有例外),以及类似的位置 我当前的搜索查询如下 ../select/?q=位置:N1类型:蓝色&行=100&fl=*,分数&调试查询=true 它首先返回所有匹配N1的blue类型,然后返回匹配N1的任何类型,这与我所追求的相反。这两个字段在Solr架构中都设置为textgen 有什么建议吗 Cheers gang默

下午的伙计们

对,我正在为一个使用Solr的网站构建一个相当复杂的搜索系统,尽管这个问题很简单,但我认为

我有两个搜索条件,位置和类型。我希望返回与类型完全匹配的结果(字母对字母,没有例外),以及类似的位置

我当前的搜索查询如下

../select/?q=位置:N1类型:蓝色&行=100&fl=*,分数&调试查询=true

它首先返回所有匹配N1的blue类型,然后返回匹配N1的任何类型,这与我所追求的相反。这两个字段在Solr架构中都设置为textgen

有什么建议吗


Cheers gang

默认情况下,Solr使用OR运算符组合查询词。如果只希望结果为
位置:N1和类型:蓝色
,而不是
位置:N1或类型:蓝色
,则需要更改运算符。改变这一点的最简单方法是在查询时向URL添加一个附加参数
q.op=和

../select/?q=location:N1 type:blue&rows=100&fl=*,score&debugQuery=true&q.op=AND
您还可以通过编辑schema.xml文件来更改所有查询的此选项;寻找

<solrQueryParser defaultOperator="OR"/>

默认情况下,Solr使用OR运算符组合查询术语。如果只希望结果为
位置:N1和类型:蓝色
,而不是
位置:N1或类型:蓝色
,则需要更改运算符。改变这一点的最简单方法是在查询时向URL添加一个附加参数
q.op=和

../select/?q=location:N1 type:blue&rows=100&fl=*,score&debugQuery=true&q.op=AND
您还可以通过编辑schema.xml文件来更改所有查询的此选项;寻找

<solrQueryParser defaultOperator="OR"/>

如果您只想强制使用“type”子句,则可以保留或作为默认运算符,并在“type”子句前面使用编码的“+”符号:

./select/?q=location:N1 %2Btype:blue&rows=100&fl=*,score&debugQuery=true

如果您只想强制使用“type”子句,则可以保留或作为默认运算符,并在“type”子句前面使用编码的“+”符号:

./select/?q=location:N1 %2Btype:blue&rows=100&fl=*,score&debugQuery=true

干杯,伙计,一些非常有用的提示,非常感谢:)干杯,伙计,一些非常有用的提示,非常感谢:)