我有一个字符串数据类型的属性。我正在使用 algoliasearchHelper 对象来搜索我的 Algolia 数据库。我想要做的是创建一个 facet 过滤器,它采用指定的前缀并返回在指定属性内具有具有指定前缀的值的所有对象。
例如,到目前为止我使用的是:
Helper.addDisjunctiveFacetRefinement("attributeName","Can");
这会返回所有在“attributeName”属性中具有“Can”值的对象,但不会返回任何在“attributeName”属性中具有“Canada”或“Canadians”值的对象,即使尽管它们的前缀是“Can”。
我怎样才能让它在过滤时使用指定的前缀进行过滤。
最佳答案
析取分面细化用于过滤器的精确匹配。这主要用于从可能的过滤器列表中选择某个过滤器。我假设您想要的是获取所有可能过滤器的子集。
这可以通过我们的 searchForFacetValues
实现功能。首先,这需要在您的索引设置中设置为 searchable(attributeName)
,这样我们就可以生成额外的数据结构,使分面易于搜索。您也可以read more关于文档中的设置。
因此,一旦属性可搜索,您就可以使用辅助函数来优化过滤器列表,如下所示:
Helper.searchForFacetValues("attributeName","Can");
祝你有美好的一天!
关于javascript - 如何创建在过滤时使用前缀的分面过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44957050/