分面搜索

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