分面搜索
/facet-search
路由允许您搜索分面值。分面搜索支持前缀搜索和拼写容错。返回的命中结果按字典顺序升序排列。您可以使用索引设置的faceting
属性中的 sortFacetValuesBy
属性配置分面的排序方式。
数字分面搜索
Meilisearch 不支持对数字进行分面搜索。将数字分面转换为字符串,使其可被搜索。
在内部,Meilisearch 将数字表示为 float64
。这意味着它们缺乏精度,并且可以用不同的方式表示,从而难以有效地搜索分面值。
执行分面搜索
在给定的分面中搜索分面值。
POST/indexes/{index_uid}/facet-search
警告
在首先将属性显式添加到 filterableAttributes
列表之前,此端点将无法工作。在我们的专门指南中了解有关分面的更多信息。
警告
Meilisearch 的分面搜索不支持多词分面,仅考虑 facetQuery
中的第一个词。
例如,搜索 Jane
将返回 Jane Austen
,但搜索 Austen
将不会返回 Jane Austen
。
请求体
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
facetName * | 字符串 | null | 要在其上搜索值的分面名称 |
facetQuery | 字符串 | null | 给定分面值的搜索查询。如果未指定 facetQuery ,则 Meilisearch 执行占位符搜索,该搜索返回被搜索分面的所有分面值,限制为 100 个 |
q | 字符串 | "" | 查询字符串 |
filter | 字符串* | null | 按属性值过滤查询 |
matchingStrategy | 字符串 | last | 用于匹配文档中查询词的策略 |
attributesToSearchOn | 字符串数组 | null | 将搜索限制为指定的属性 |
响应
名称 | 类型 | 描述 |
---|---|---|
facetHits.value | 字符串 | 与 facetQuery 匹配的分面值 |
facetHits.count | 整数 | 具有与 value 匹配的分面值的文档数量 |
facetQuery | 字符串 | 原始的 facetQuery |
processingTimeMs | 数字 | 查询的处理时间 |
示例
curl \
-X POST 'https://127.0.0.1:7700/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
}