分面搜索
/facet-search
路由允许您搜索分面值。分面搜索支持 前缀搜索 和 拼写容错。返回的命中结果按字典顺序升序排序。您可以使用 sortFacetValuesBy
属性(位于 faceting
索引设置中)配置分面的排序方式。
数字上的分面搜索
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 |
处理时间(毫秒) | 数字 | 查询的处理时间 |
示例
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
}