显示和排序属性

默认情况下,每当一个文档被添加到 Meilisearch,所有在其中发现的新属性都会自动添加到两个列表中:

  • searchableAttributes: 其值被搜索为匹配的查询词。
  • displayedAttributes: 其字段显示在文档中。

这意味着默认情况下,文档中的每个字段都是可搜索和显示的。这些属性可以在设置中修改。

可搜索字段

字段可以是可搜索的,也可以是不可搜索的。

在执行搜索时,所有可搜索的字段都会被检查是否匹配查询词,并用于评估文档相关性,而不可搜索的字段则完全被忽略。默认情况下,所有字段都是可搜索的

对于与搜索体验无关的内部信息,比如 url、销售数字或专门用于排序结果的评级,非搜索字段最为有用。

即使您使一个字段不可搜索,它仍将保存在数据库中,以后可以再次使其可搜索。

searchableAttributes

Meilisearch 使用一个有序列表来确定哪些属性是可搜索的。这个列表中属性出现的顺序也决定了它们对相关性的影响,从最有影响力到最小。

换句话说,searchableAttributes 列表有两个用途:

  1. 它指定了可搜索的域。
  2. 它规定了属性排序顺序。

searchableAttributes 列表有两种可能的模式。

  • 默认:Automatic

默认情况下,所有属性按照外观顺序自动添加到 searchableAttributes 列表中。这意味着初始顺序将基于第一个文档索引中的属性顺序,每个新属性都在后续文档中添加到列表的末尾。

此默认行为由 searchableAttributes 值[”*”]指示。若要验证 searchableAttributes 列表的当前值,请使用 /indexes/:index_uid/settings/searchable-attributes。

如果您希望将可搜索属性列表恢复为此默认行为,只需将 searchableAttributes 设置为空数组[]。

  • Manual 您可能希望使某些属性不可搜索,或者在文档被索引后更改属性排序顺序。为此,只需将属性按所需顺序放置,并使用/indexes/:index_uid/settings/searchable-attributes发送更新后的列表。

在手动更新 searchableAttributes 列表之后,除非重置设置,否则将不再自动添加后续的新属性。

显示的字段

其属性添加到 displayedAttributes 列表的字段显示在每个匹配的文档中。在搜索时返回的文档只包含显示的字段。默认情况下,所有字段属性都按显示方式设置。因此,如果字段属性不在 displayed-attribute 列表中,则该字段将不会添加到返回的文档中。此列表可以限制为设置中选定的一组属性。

数据存储

所有字段都存储在数据库中。此行为不能更改。因此,即使 displayedAttributes 列表和 searchableAttributes 列表中都缺少一个字段,它仍然存储在数据库中,并且可以随时添加到其中一个或两个列表中。