阿尔及利亚或条件
Algolia OR Condition
我注意到用逗号分隔搜索词会导致 AND 条件:dog, cat = dog AND cat。
有没有办法执行 OR 条件?
这看起来可以解决问题吗?
index.search("shirts", {
"facets": "*",
"hitsPerPage": 10,
"facetFilters": [
"size:M",
"size:L",
],
"maxValuesPerFacet": 100
});
这看起来是否适用于动态传递构面值?它在文档中说:
You can also use a JSON string array encoding (for example encodeURIComponent('[["category:Book","category:Movie"],"author:John Doe"]')
).
"facetFilters": json_encode(["size:M","size:L"])
对于寻找如何使用 OR 条件进行搜索的任何人,他们在文档中称为 "OR refinements"。这是一些有效的代码:
$algolia_config_settings = array("facets" => "*",
"facetFilters" => array( array("pa_size:xxs",
"pa_size:5xl") ),
"hitsPerPage" => 1000);
您可以使用相同类型的语法对构面筛选器和标记筛选器执行 OR。您可以在字符串中使用括号或使用您编码的数组来做到这一点。请参阅 details 的 REST API 文档。
此外,如果您使用 API 客户端,实施可能会有所不同。您应该查看特定的文档页面(例如 PHP related documentation)
如果您使用的是 Algolia PHP 库,您可以将 OR 过滤器添加为:
$filters[] = 'option1: value1 OR option2: value2'
然后将其作为第二个参数传递给搜索方法。
归功于 Iman Santoso:https://au.linkedin.com/in/iman-santoso-9a6bb016
我注意到用逗号分隔搜索词会导致 AND 条件:dog, cat = dog AND cat。 有没有办法执行 OR 条件?
这看起来可以解决问题吗?
index.search("shirts", {
"facets": "*",
"hitsPerPage": 10,
"facetFilters": [
"size:M",
"size:L",
],
"maxValuesPerFacet": 100
});
这看起来是否适用于动态传递构面值?它在文档中说:
You can also use a JSON string array encoding (for example
encodeURIComponent('[["category:Book","category:Movie"],"author:John Doe"]')
).
"facetFilters": json_encode(["size:M","size:L"])
对于寻找如何使用 OR 条件进行搜索的任何人,他们在文档中称为 "OR refinements"。这是一些有效的代码:
$algolia_config_settings = array("facets" => "*",
"facetFilters" => array( array("pa_size:xxs",
"pa_size:5xl") ),
"hitsPerPage" => 1000);
您可以使用相同类型的语法对构面筛选器和标记筛选器执行 OR。您可以在字符串中使用括号或使用您编码的数组来做到这一点。请参阅 details 的 REST API 文档。
此外,如果您使用 API 客户端,实施可能会有所不同。您应该查看特定的文档页面(例如 PHP related documentation)
如果您使用的是 Algolia PHP 库,您可以将 OR 过滤器添加为:
$filters[] = 'option1: value1 OR option2: value2'
然后将其作为第二个参数传递给搜索方法。
归功于 Iman Santoso:https://au.linkedin.com/in/iman-santoso-9a6bb016