Algolia初始搜索参数instantsearch.js

时间:2016-02-16 15:50:22

标签: javascript algolia

我有一个索引,我试图在algolia中传递查询的初始值。我正在使用instantsearch.js,现在它只是加载我的索引中的所有内容。如何在页面加载时将初始值传递给索引?

例如Select * from index where Category='Careers'(将职业作为负载上的值传递)

我为此搜索了文档,但无法弄明白。

另外,我需要传递多个值,例如:

select * from index where Category = 'Careers' or 'Skills' or 'Interests'(带或陈述)

谢谢!

1 个答案:

答案 0 :(得分:11)

我假设您正在使用refinementList小部件:https://community.algolia.com/instantsearch.js/documentation/#refinementlist。在'类别'您的数据的属性。

如果是这样,你可以这样做:

var preselectedCategories = ['Careers', 'Skills'];

var search = instantsearch(applicationID, apiKey, {
  ...other parameters,
  searchParameters: {
    disjunctiveFacetsRefinements: {
      category: preselectedCategories
    }
  }
})

您还需要在refinementList实例化中执行此操作:

var refinementList = instantsearch.widgets.refinementList({
  transformData: {
    item: function(item) {
      if (preselectedCategories.indexOf(item.name) !== -1) {
        item.cssClasses.label += ' pre-selected';
      }

      return item;
    }
  }
});

然后,所有预先选择的类别项目都将具有预先选择的"预先选择的" CSS 默认为。

然后你可以使用css和这个类名来做:

.pre-selected {
  display: none;
}

让我知道