【问题标题】:How to OR solr term facets via the search URL in Drupal 7 site?如何通过 Drupal 7 站点中的搜索 URL 或 solr 术语方面?
【发布时间】:2012-05-09 19:40:32
【问题描述】:

我有一个运行 apachesolr 搜索并通过 facetapi 模块使用分面的 Drupal 7 网站。

当我使用构面缩小搜索范围时,一切正常,我可以看到过滤器已添加到搜索 URL,因此我可以将它们作为链接(现成的缩小搜索范围)复制到网站的其他位置。

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

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

search_keyword”部分是我正在搜索的文本,而“%3A”只是 url 编码的“:”(冒号)。

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

但是,这些过滤器始终是 AND 运算,与使用 facet 接口时的方式相同。有谁知道我是否可以使用某种语法(特别是在搜索 URL 中)OR 我的过滤器/构面?意思是,使其结果是包含两个过滤器中的任何一个的所有条目?

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

新编辑:

我确实知道如何通过 URL 对同一词汇中的术语进行 OR,我只是想知道如何对不同词汇中的术语进行 OR。 ;-)

【问题讨论】:

    标签: drupal solr drupal-7 faceted-search


    【解决方案1】:

    您可以编写如下所示的过滤查询:

    fq=field1:value1 OR field2:value2
    

    您也可以使用 localparams 来指定查询运算符:

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

    据我所知,没有比这更简单的方法了。事实上,有一个rather old bug 要求提供OR fq 参数的方法...

    【讨论】:

    • 嗨 beerbajay,非常感谢您的回复!我只是想知道,你是说这确实是我可以包含/附加到搜索 URL 的东西吗?这就是我所要求的...如果是这样,您能否举例说明具有此类字段/过滤器 OR 的搜索 URL 的外观?
    • 我不是drupal用户,但上面的例子是solr的普通url参数。例如?q=my search word&fq=field1:value1 OR field2:value2
    • 谢谢!它在 URL 中的工作方式与此不太一样,但 +1 以提供帮助!
    • 如果你得到它的工作,添加你的解决方案作为答案并接受它。
    • 我当然会,但我还没有找到解决方案,我怀疑我不能这样做。如果构建一个自定义模块就可以做到,但可能不是我希望的这种简单方式......
    【解决方案2】:

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

    启用 fq 参数设置。

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

    • 选中“允许用户使用 URL 输入”设置

    网址语法

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多