Algolia vue-instantsearch:两个不同方面之间的分离

Algolia vue-instantsearch : disjunction between two distincts facets

使用algolia vue-instantsearch,我遇到了一个特殊情况,我很难找到解决方案。

优化行为是您获得与所有优化过滤器相匹配的结果。

如果我过滤品牌和价格,我会得到与品牌和价格都匹配的结果。

我需要添加一些工作方式不同的特定过滤器。我希望能够说“returns 匹配 refinementA、refinementB 或 refinementC 的结果。”

原因是这些改进正在检查并非所有产品上都存在的字段。

如果我检查 refinementA 的值,我想保留所有与 refinementA 对应的字段没有值的结果,但删除那些具有 refinementA 值但与我过滤的结果不匹配的结果。

我正在考虑自己处理一些输入而不是 ias-components,并通过在触发 searchFunction 时检查我自己的输入值来手动修改发送到 algolia 的每个查询 (https://www.algolia.com/doc/api-reference/widgets/instantsearch/js/#widget-param-searchfunction)。

我还没有找到如何从非 vue-instantsearch 输入事件触发搜索,我不确定上述解决方案如何影响 vue-instantsearch 的内部工作。

我正在寻找有关执行此操作的更标准方法的反馈,或任何建议!

我通过与 vue-instantsearch 维护者交流得到了答案。

vue-instantsearch 没有提供任何选项。

解决方法是覆盖 algoliasearch 搜索方法,vue-instant-search 在幕后使用该方法。

const client = algoliasearch('', '');
const originalSearch = client.search;
client.search = function search(queries) { ... }

本 github 期的更多信息:https://github.com/algolia/vue-instantsearch/issues/1102