分面搜尋

    /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字串最後用於比對文件中查詢詞彙的策略
    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
    }