如何更改传递 2 个词查询的 Solr 行为? (在克隆下)
How do I change the Solr behavior for passing 2 word queries? (under plone)
我在我们的 Plone 4.2.6 系统上使用 Collective Solr 4.1.0 Search。到目前为止一切顺利,但有一个问题我还无法解决。
当用户在搜索字段中输入 'Michael Smith' 时,查询将传递给 Solr,如下例所示:
+((givenName:(Michael) (Smith)) OR (surname:(Michael) (Smith)))
这样,givenName 和 surname 字段都只搜索 Michael。我宁愿这样:
+((givenName:(Michael OR Smith)) OR (surname:(Michael OR Smith)))
由于我使用 {value} 或 {base_value} 获取用户条目,这会自动使其成为 (Michael) (Smith)
,我不知道如何告诉 Solr 放置一个 'OR' 之间或如何更改用户查询。
浏览另一个论坛,我刚刚找到了针对我的特定问题的解决方案:括号。
在后端,当我输入 +(surname:{base_value})
时,它被替换为 +(surname:(Michael) (Smith))
。然后将 Smith 用于默认字段。
此处的简单解决方案是将 {base_value} 放在括号中。 +surname:({base_value})
然后变成 +surname:((Michael) (Smith))
并像中间有一个 'OR' 一样自动处理。
我在我们的 Plone 4.2.6 系统上使用 Collective Solr 4.1.0 Search。到目前为止一切顺利,但有一个问题我还无法解决。 当用户在搜索字段中输入 'Michael Smith' 时,查询将传递给 Solr,如下例所示:
+((givenName:(Michael) (Smith)) OR (surname:(Michael) (Smith)))
这样,givenName 和 surname 字段都只搜索 Michael。我宁愿这样:
+((givenName:(Michael OR Smith)) OR (surname:(Michael OR Smith)))
由于我使用 {value} 或 {base_value} 获取用户条目,这会自动使其成为 (Michael) (Smith)
,我不知道如何告诉 Solr 放置一个 'OR' 之间或如何更改用户查询。
浏览另一个论坛,我刚刚找到了针对我的特定问题的解决方案:括号。
在后端,当我输入 +(surname:{base_value})
时,它被替换为 +(surname:(Michael) (Smith))
。然后将 Smith 用于默认字段。
此处的简单解决方案是将 {base_value} 放在括号中。 +surname:({base_value})
然后变成 +surname:((Michael) (Smith))
并像中间有一个 'OR' 一样自动处理。