2017-07-06 63 views
2

我有一个属性是字符串数据类型。我使用algoliasearchHelper对象来搜索我的Algolia数据库。我想要做的是创建一个facet过滤器,该过滤器接受指定的前缀,并返回具有指定前缀内的值的指定属性内的所有对象。如何创建在过滤时使用前缀的构面过滤器

例如,到目前为止我用这:

Helper.addDisjunctiveFacetRefinement("attributeName","Can"); 

这将返回一个具有价值的所有对象“可以”在“的attributeName”属性,但它不返回任何对象在“attributeName”属性中具有“加拿大”或“加拿大人”的值,即使这些属性的前缀为“可以”。

我该如何做到这一点,以便它在过滤时使用指定的前缀进行过滤。

回答

5

分离面精化用于精确匹配过滤器。这主要用于从可能的过滤器列表中选择某个过滤器。我假设你想要的是获得所有可能过滤器的子集。

这可以通过我们的searchForFacetValues函数来实现。首先,这需要在您的索引设置中设置为searchable(attributeName),以便我们可以生成其他数据结构以便轻松搜索构面。您也可以在文档中关于该设置的read more

所以一旦属性进行搜索,您可以使用辅助功能完善的过滤器列表如下:

Helper.searchForFacetValues("attributeName","Can"); 

有一个伟大的一天!

+0

当我使用它时,它会触发它自己的搜索。我已经在使用: 'Helper.search()'进行搜索。有什么方法可以让我可以传递参数给algolia搜索,这样当我调用'Helper.search()'时,它会搜索所有具有前缀“Can”的facet值,同时还保留我已声明的其他facet过滤器? – Algoliahelpmeplz

+0

搜索方面值是它自己的单独搜索。它只是查看这一个属性,因此将它作为参数并不合理,并且我们不支持该用例(尚)。我希望你能找到解决办法,或者随时向我们的支持发送更多信息 –

相关问题