以编程方式选择过滤器

时间:2017-12-15 19:55:05

标签: algolia

我在wordpress网站上使用Algolia。我做了一个搜索结果页面,它使用了大多数标准的内置aloglia功能。我想要做的是当有人输入一个关键字,如果它匹配我的一个标签,类别,相关的主题类型,我希望它选择该主题类型。我需要以编程方式执行此操作。我想我可以用javascript做到这一点,但是当我尝试这个时它没有生效。

jQuery('#qry-<?php // echo $active_query_term_slug; ?>').attr('checked', true);

我也尝试过:

helper.on('result', function(result) {
    result.hits.forEach( (hit) =>
         jQuery('#qry-<?php // echo $active_query_term_slug; ?>').attr('checked', true);
     )
});

我应该补充一点,我已经在主题类型中添加了一个ID,该ID与我尝试在.attr('checked',true)行中选择的id相匹配。

当搜索到术语的完全匹配时,有没有办法以编程方式选择复选框?

1 个答案:

答案 0 :(得分:0)

(免责声明:我在Algolia工作)

Algolia最近实际发布了一项功能,专为您的目标而设计:Query Rules

将您的代码,类别和主题设置为分面的属性,您可以要求引擎在查询中自动检测其中一个,并为此激活正确的过滤:

adding a rule

条件仅由“facet占位符”组成,它将尝试与categories方面的任何值完全匹配。

请注意,我在我的规则中添加了两个后果:

  1. 过滤已识别的categories构面值
  2. 从查询中删除该字词
  3. 第二个将确保您的查询仍然通过从中删除构面值来提取结果。事实上,一旦对类别特定的记录进行过滤,该词本身可能不再匹配任何内容或创建一些“噪音” 这是可选的,但我强烈推荐它。

    请注意,会从用户的搜索框中删除该字词,因此对他们来说是透明的!