分面搜索

    /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
    }