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

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

我已经在文档中搜索了此内容,无法解决。

另外,我需要传递多个值,例如:
select * from index where Category = 'Careers' or 'Skills' or 'Interests'(带有或语句)

谢谢!

最佳答案

我假定您使用的是finementListList小部件:https://community.algolia.com/instantsearch.js/documentation/#refinementlist。在数据的“类别”属性上。

如果是这样,您可以执行以下操作:

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

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

您还需要在finementList实例化中执行此操作:
var refinementList = instantsearch.widgets.refinementList({
  transformData: {
    item: function(item) {
      if (preselectedCategories.indexOf(item.name) !== -1) {
        item.cssClasses.label += ' pre-selected';
      }

      return item;
    }
  }
});

然后,所有预选类别项都将具有“预选” css
默认情况下为class。

然后,您可以使用css和此类名称进行操作:
.pre-selected {
  display: none;
}

让我知道

关于javascript - Algolia 初始搜索参数Instantsearch.js,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35437004/

10-09 17:35