如何通过Drupal 7站点中的搜索URL来解决术语方面?

时间:2012-05-09 19:40:33

标签: drupal solr drupal-7 faceted-search

我有一个正在运行apachesolr搜索的Drupal 7网站,并且正在使用facetapi模块进行分面。

当我使用facet来缩小我的搜索范围时,一切都运行良好,我可以看到过滤器被添加到搜索URL中,因此我可以将它们复制为网站上其他位置的链接(现成的缩小搜索)。

以下是我选择多个构面/过滤器后apachesolr URL的示例:

search_url/search_keyword?f[0]=im_field_tag_term1%3A1&f[1]=im_field_tag_term2%3A100

search_keyword ”部分是我正在搜索的文字,“%3A ”只是网址编码的':'(冒号)。< / p>

了解这种格式后,我可以通过为URL创建正确的格式来创建任意数量的现成搜索。完善!

但是,这些过滤器始终是AND,与使用facet接口时的过滤器相同。有没有人知道我可以使用的语法,特别是在搜索网址中, OR 我的过滤器/方面?这意味着,结果是包含两个过滤器的EITHER的所有条目?

提前感谢任何有关正确方向的帮助或指示!

新编辑:

我确实知道如何通过URL在同一个词汇表中使用OR术语,我只是想知道如何在不同的词汇表中使用术语。 ; - )

2 个答案:

答案 0 :(得分:1)

您可以编写一个类似于:

的过滤查询
fq=field1:value1 OR field2:value2

或者,您可以使用localparams指定查询运算符:

fq={!q.op=OR}field1:value1 field2:value2

据我所知,没有更简单的方法可以做到这一点。事实上,rather old bug要求OR fq {{1}}个参数......

答案 1 :(得分:1)

我终于在Drupal找到了一种方法

启用fq参数设置。

  • 转到admin / config / search / apachesolr / [your_search_page] / core_search / edit或只是导航到您尝试修改的搜索页面的设置

  • 选中“允许使用网址的用户输入”设置

网址语法

  • 在网址末尾添加以下内容:?fq = tid:(16 OR 38),其中16和38是术语ID