Facet search
/facet-search
路由允许您搜索 facet 值。Facet search 支持前缀搜索和拼写容错。返回的命中结果按字典顺序升序排序。您可以使用faceting
索引设置的 sortFacetValuesBy
属性配置 facet 的排序方式。
数字的 Facet search
Meilisearch 不支持对数字进行 facet search。将数字 facet 转换为字符串以使其可搜索。
在内部,Meilisearch 将数字表示为 float64
。这意味着它们缺乏精度,并且可以用不同的方式表示,从而难以有效地搜索 facet 值。
执行 facet search
在给定的 facet 中搜索 facet 值。
POST/indexes/{index_uid}/facet-search
警告
如果不先显式地将属性添加到filterableAttributes
列表中,则此端点将不起作用。请参阅我们的专用指南,了解有关 facet 的更多信息。
警告
Meilisearch 的 facet search 不支持多词 facet,并且仅考虑 facetQuery
中的第一个词。
例如,搜索 Jane
将返回 Jane Austen
,但搜索 Austen
将不会返回 Jane Austen
。
请求体
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
facetName * | 字符串 | null | 要在其上搜索值的 Facet 名称 |
facetQuery | 字符串 | null | 给定 facet 值的搜索查询。如果未指定 facetQuery ,Meilisearch 将返回所搜索 facet 的所有 facet 值,限制为 100 个 |
q | 字符串 | "" | 查询字符串 |
filter | 字符串* | null | 按属性值过滤查询 |
matchingStrategy | 字符串 | "last" | 用于匹配文档中查询词的策略 |
attributesToSearchOn | 字符串数组 | null | 将搜索限制为指定的属性 |
exhaustiveFacetCount | 布尔值 | false | 返回 facet 的详尽计数,最多为 maxTotalHits 定义的限制 |
响应
名称 | 类型 | 描述 |
---|---|---|
facetHits.value | 字符串 | 与 facetQuery 匹配的 Facet 值 |
facetHits.count | 整数 | 具有与 value 匹配的 facet 值的文档数量 |
facetQuery | 字符串 | 原始 facetQuery |
processingTimeMs | 数字 | 查询的处理时间 |
示例
curl \
-X POST 'MEILISEARCH_URL/indexes/books/facet-search' \
-H 'Content-Type: application/json' \
--data-binary '{
"facetQuery": "fiction",
"facetName": "genres",
"filter": "rating > 3"
}'
响应: 200 Ok
{
"facetHits": [
{
"value": "fiction",
"count": 7
}
],
"facetQuery": "fiction",
"processingTimeMs": 0
}