显示和可搜索属性
显示和可搜索属性定义了 Meilisearch 在成功查询后返回的数据,以及 Meilisearch 在搜索时考虑的字段。了解如何配置它们有助于提高应用程序的性能。
默认情况下,每当文档添加到 Meilisearch 时,其中找到的所有新属性都会自动添加到两个列表中
displayedAttributes
:字段显示在文档中的属性searchableAttributes
:其值用于搜索匹配查询词的属性
默认情况下,文档中的每个字段都是**显示**和**可搜索**的。这些属性可以在设置中修改。
显示字段
属性添加到 displayedAttributes
列表中的字段会**显示在每个匹配的文档中**。
搜索返回的文档仅包含显示字段。如果字段属性不在显示属性列表中,则该字段将不会添加到返回的文档中。
默认情况下,所有字段属性都设置为显示.
示例
假设您管理一个包含电影信息的数据库。通过添加以下设置,搜索返回的文档将包含字段 title
、overview
、release_date
和 genres
。
可搜索字段
一个字段可以是**可搜索**的,也可以是**不可搜索**的。
当您执行搜索时,所有可搜索字段都会被检查以匹配查询词并用于评估文档相关性,而不可搜索字段则完全被忽略。**默认情况下,所有字段都是可搜索的。**
不可搜索字段最适用于与搜索体验不相关的内部信息,例如 URL、销售数据或仅用于排序结果的评分。
即使您将某个字段设为不可搜索,它仍会存储在数据库中,并可在以后再次设为可搜索。
searchableAttributes
列表
Meilisearch 使用有序列表来确定哪些属性是可搜索的。属性在此列表中出现的顺序也决定了它们对相关性的影响,从影响最大到最小。
换句话说,searchableAttributes
列表有两个用途
- 它指定了可搜索的字段
- 它决定了属性排名顺序
searchableAttributes
列表有两种可能的模式。
默认:自动
**默认情况下,所有属性都会根据其出现顺序自动添加到 searchableAttributes
列表中。** 这意味着初始顺序将基于第一个索引文档中属性的顺序,后续文档中找到的每个新属性都会添加到此列表的末尾。
此默认行为由 searchableAttributes
值为 ["*"]
表示。要验证您的 searchableAttributes
列表的当前值,请使用获取可搜索属性端点。
如果您想将可搜索属性列表恢复到此默认行为,请将 searchableAttributes
设置为空数组 []
或使用重置可搜索属性端点。
手动
您可能希望在文档索引后将某些属性设为不可搜索,或更改属性排名顺序。为此,请将属性按所需顺序排列,然后使用更新可搜索属性端点发送更新后的列表。
手动更新 searchableAttributes
列表后,**后续的新属性将不再自动添加**,除非重置设置。
由于一个实现错误,手动更新 searchableAttributes
将改变 JSON 响应中文档字段的显示顺序。此行为不一致,并将在未来的版本中修复。
示例
假设您管理一个电影数据库,包含以下字段:id
、overview
、genres
、title
、release_date
。这些字段都包含有用信息。然而,**有些字段比其他字段对搜索更有用**。要使 id
和 release_date
字段不可搜索,并按重要性重新排序剩余字段,您可以按以下方式更新可搜索属性列表。
在搜索时自定义要搜索的属性
默认情况下,所有查询都会搜索 searchableAttributes
列表中的所有属性。使用attributesToSearchOn
搜索参数可以将特定查询限制为索引的 searchableAttributes
的子集。
数据存储
所有字段都存储在数据库中。**此行为无法更改**。
因此,即使某个字段在 displayedAttributes
列表和 searchableAttributes
列表中都缺失,**它仍然存储在数据库中**,并且可以随时添加到其中一个或两个列表中。