默认情况下,每当文档添加到 Meilisearch 时,其中找到的所有新属性都会自动添加到两个列表: 默认情况下,文档中的所有字段都是可显示可搜索的。这些属性可以在设置中修改。

可显示字段

其属性添加到displayedAttributes 列表中的字段将显示在每个匹配的文档中 搜索时返回的文档仅包含可显示字段。如果字段属性不在可显示属性列表中,则该字段不会添加到返回的文档中。 默认情况下,所有字段属性都设置为可显示

示例

假设您管理一个包含电影信息的数据库。通过添加以下设置,搜索时返回的文档将包含 titleoverviewrelease_dategenres 字段。
curl \
  -X PUT 'MEILISEARCH_URL/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 'MEILISEARCH_URL/indexes/movies/settings/searchable-attributes' \
  -H 'Content-Type: application/json' \
  --data-binary '[
      "title",
      "overview",
      "genres"
    ]'

在搜索时自定义搜索属性

默认情况下,所有查询都会搜索 searchableAttributes 列表中的所有属性。使用attributesToSearchOn 搜索参数可将特定查询限制为您索引的 searchableAttributes 子集。

数据存储

所有字段都存储在数据库中。此行为无法更改 因此,即使某个字段在 displayedAttributes 列表和 searchableAttributes 列表中都缺失,它仍然存储在数据库中,并且可以随时添加到其中一个或两个列表中。
© . This site is unofficial and not affiliated with Meilisearch.