我有一个正在运行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术语,我只是想知道如何在不同的词汇表中使用术语。 ; - )
答案 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或只是导航到您尝试修改的搜索页面的设置
选中“允许使用网址的用户输入”设置
网址语法