0

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

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

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

我需要添加一些工作方式不同的特定过滤器。我想说“返回给我匹配细化 A、细化 B 或细化 C 的结果。”</p>

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

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

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

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

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

4

1 回答 1

0

我通过与 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

于 2022-01-28T16:38:49.360 回答