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
如何更改传递两个单词查询的Solr行为?(普隆下)_Solr_Plone - Fatal编程技术网

如何更改传递两个单词查询的Solr行为?(普隆下)

如何更改传递两个单词查询的Solr行为?(普隆下),solr,plone,Solr,Plone,我在Plone 4.2.6系统上使用集体Solr 4.1.0搜索。到目前为止还不错,有一个问题我还没能解决。 当用户在搜索字段中输入“Michael Smith”时,查询get将传递给Solr,如下例所示: +((givenName:(Michael) (Smith)) OR (surname:(Michael) (Smith))) 这样,givenName和姓氏两个字段都只搜索Michael。我宁愿这样: +((givenName:(Michael OR Smith)) OR (surnam

我在Plone 4.2.6系统上使用集体Solr 4.1.0搜索。到目前为止还不错,有一个问题我还没能解决。 当用户在搜索字段中输入“Michael Smith”时,查询get将传递给Solr,如下例所示:

+((givenName:(Michael) (Smith)) OR (surname:(Michael) (Smith)))
这样,givenName和姓氏两个字段都只搜索Michael。我宁愿这样:

+((givenName:(Michael OR Smith)) OR (surname:(Michael OR Smith)))

由于我使用{value}或{base_value}获取用户条目,这会自动使其成为
(Michael)(Smith)
,我不知道如何告诉Solr在两者之间放置一个“或”,或者如何更改用户查询。

浏览另一个论坛,我刚刚找到了解决我特定问题的方法:括号。 在后端,当我输入
+(姓氏:{base_value})
时,它被
+(姓氏:(Michael)(Smith))
替换。然后,默认字段将使用Smith

这里的简单解决方案是将{base_value}放在括号中<代码>+姓氏:({base_value})然后变为
+姓氏:((Michael)(Smith))
并自动处理,就像中间有一个“或”