顯示和可搜尋屬性

    預設情況下,每當將文件新增至 Meilisearch 時,其中找到的所有新屬性都會自動新增至兩個清單

    預設情況下,文件中的每個欄位都是顯示可搜尋的。這些屬性可以在設定中修改。

    顯示的欄位

    其屬性新增至displayedAttributes 清單的欄位會顯示在每個比對的文件中

    搜尋時傳回的文件僅包含顯示的欄位。如果欄位屬性不在顯示屬性清單中,則該欄位不會新增至傳回的文件中。

    預設情況下,所有欄位屬性都設定為顯示.

    範例

    假設您管理一個包含電影資訊的資料庫。透過新增以下設定,搜尋後回傳的文件將包含 titleoverviewrelease_dategenres 等欄位。

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/movies/settings/displayed-attributes' \
      -H 'Content-Type: application/json' \
      --data-binary '[
          "title",
          "overview",
          "genres",
          "release_date"
        ]'

    可搜尋欄位

    欄位可以是可搜尋不可搜尋的。

    當您執行搜尋時,所有可搜尋的欄位都會被檢查是否與查詢詞彙匹配,並用於評估文件的相關性,而不可搜尋的欄位則完全被忽略。預設情況下,所有欄位都是可搜尋的。

    不可搜尋的欄位最適合用於與搜尋體驗無關的內部資訊,例如 URL、銷售數字,或僅用於排序結果的評分。

    提示

    即使您將某個欄位設為不可搜尋,它仍然會儲存在資料庫中,並且可以在稍後再次設為可搜尋。

    searchableAttributes 清單

    Meilisearch 使用一個有序的清單來決定哪些屬性是可搜尋的。屬性在這個清單中出現的順序也決定了它們對相關性的影響,從影響最大到最小。

    換句話說,searchableAttributes 清單有兩個用途

    1. 它指定了哪些欄位是可搜尋的
    2. 它決定了屬性排序順序

    searchableAttributes 清單有兩種可能的模式。

    預設:自動

    預設情況下,所有屬性都會按照它們出現的順序自動新增到 searchableAttributes 清單中。 這表示初始順序將基於第一個索引文件中屬性的順序,而後續文件中找到的每個新屬性都會加到此清單的末尾。

    這個預設行為由 searchableAttributes 的值 ["*"] 表示。要驗證您的 searchableAttributes 清單的目前值,請使用取得可搜尋屬性端點

    如果您想將可搜尋屬性清單還原為此預設行為,請searchableAttributes 設定為空陣列 [] 或使用重設可搜尋屬性端點

    手動

    您可能想要將某些屬性設定為不可搜尋,或在文件被索引後更改屬性排序順序。為此,請將屬性按照期望的順序放置,並使用更新可搜尋屬性端點傳送更新後的清單。

    在手動更新 searchableAttributes 清單之後,除非設定被重設,否則後續新增的屬性將不再自動新增

    警告

    由於實作上的錯誤,手動更新 searchableAttributes 將會改變 JSON 回應中顯示的文件欄位順序。此行為不一致,將在未來的版本中修正。

    範例

    假設您管理一個具有以下欄位的電影資料庫:idoverviewgenrestitlerelease_date。這些欄位都包含有用的資訊。然而,有些欄位比其他欄位更適合用於搜尋。為了使 idrelease_date 欄位不可搜尋,並按重要性重新排序剩餘的欄位,您可以透過以下方式更新可搜尋屬性清單。

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/movies/settings/searchable-attributes' \
      -H 'Content-Type: application/json' \
      --data-binary '[
          "title",
          "overview",
          "genres"
        ]'

    在搜尋時自訂要搜尋的屬性

    預設情況下,所有查詢都會搜尋 searchableAttributes 清單中的所有屬性。使用attributesToSearchOn 搜尋參數將特定查詢限制在索引的 searchableAttributes 的子集內。

    資料儲存

    所有欄位都儲存在資料庫中。此行為無法變更

    因此,即使某個欄位同時不在 displayedAttributes 清單和 searchableAttributes 清單中,它仍然會儲存在資料庫中,並且可以隨時新增到任一個或兩個清單中。