【问题标题】:Algolia show all the search parameters in instantsearch after render search results渲染搜索结果后,Algolia 在 Instantsearch 中显示所有搜索参数
【发布时间】:2026-02-16 14:15:01
【问题描述】:

我在 WordPress 中使用 algolia 进行搜索。我想在呈现搜索结果后获取所有搜索查询,如搜索参数、搜索方面。

为了实现这一点,我正在做这样的事情

var search = instantsearch({
  appId: algolia.application_id,
  apiKey: algolia.search_api_key,
  indexName: algolia.indices.searchable_posts.name,
  urlSync: {
    mapping: {'q': 's'},
    trackedParameters: ['query']
  },
  searchParameters: {
    facetingAfterDistinct: true,
highlightPreTag: '__ais-highlight__',
highlightPostTag: '__/ais-highlight__'
  }
});


search.on('render', () => {
    console.log(search.searchParameters.query); 
});

它只显示初始搜索查询。但是当我尝试更新搜索时,它也没有显示更新的搜索。 它也不会返回任何方面过滤器搜索的属性。 那么有人可以告诉我如何在搜索呈现后获取这些值吗?

【问题讨论】:

    标签: reactjs algolia instantsearch.js react-instantsearch


    【解决方案1】:

    我通过阅读文档得到了解决方案。因此,在搜索完成后,它会通过辅助方法呈现结果。因此,要获取所有搜索查询和过滤器,您需要这样做

    search.helper.on('result', function(event) {
    //To get search query
    console.log(event._state.query);
    
    //To get search parameters like filters
    console.log(event._state.disjunctiveFacetsRefinements);
    });
    

    【讨论】: