分面搜尋
/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
}