elasticsearch 在Elasticsearch中,如果设置';商店';在几个字段上设置为是,但源设置为false?,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch 在Elasticsearch中,如果设置';商店';在几个字段上设置为是,但源设置为false?,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch 在Elasticsearch中,如果设置';商店';在几个字段上设置为是,但源设置为false?

elasticsearch 在Elasticsearch中,如果设置';商店';在几个字段上设置为是,但源设置为false?,elasticsearch,lucene,elasticsearch,Lucene,我们正在构建一个“统一”的搜索,搜索系统中的许多不同资源。我们的索引模式包括大约10个索引的通用字段,再加上5个,在返回结果时需要它们来标识系统中适当的资源位置 索引字段通常包含敏感数据,因此我们根本不希望存储它们,只为匹配而索引,因此我们将\u source设置为FALSE 但是,我确实希望返回5个标识字段,因此是否可以将标识字段设置为存储=是,但总体索引\u source设置为假,并获得我在结果中查找的内容?是的,存储的字段不依赖\u source字段,反之亦然。它们是分开的,更改或禁用其中

我们正在构建一个“统一”的搜索,搜索系统中的许多不同资源。我们的索引模式包括大约10个索引的通用字段,再加上5个,在返回结果时需要它们来标识系统中适当的资源位置

索引字段通常包含敏感数据,因此我们根本不希望存储它们,只为匹配而索引,因此我们将
\u source
设置为
FALSE


但是,我确实希望返回5个标识字段,因此是否可以将标识字段设置为
存储
=
,但总体索引
\u source
设置为
,并获得我在结果中查找的内容?

是的,存储的字段不依赖
\u source
字段,反之亦然。它们是分开的,更改或禁用其中一个不应影响另一个。

是的,存储的字段不依赖于
\u源
字段,反之亦然。它们是分开的,更改或禁用其中一个不应影响另一个。

也可以查看另一个。如前所述,在大多数情况下,
\u source
字段帮助很大。尽管由于elasticsearch有效地存储了传入的整个文档,这看起来可能是一种浪费,但这确实非常方便(例如,当需要更新文档而不发送整个更新文档时)。最终,它隐藏了一个lucene实现细节,即如果您想取回字段,则需要显式存储字段,而用户通常希望取回他们发送给搜索引擎的内容。令人惊讶的是,
\u source
也有助于提高性能,因为它需要单个磁盘搜索,而不是检索多个存储字段可能导致的更多磁盘搜索。归根结底,
\u source
字段只是一个包含json的大型lucene存储字段,可以对其进行解析,以访问特定字段并对其进行处理,而无需单独存储

这就是说,根据您的用例(检索的字段数量),在底部查看source include/exclude可能会很有用,这允许您防止存储源字段的部分(例如文档的敏感部分)。如果您希望继续依赖
\u源代码,但不希望返回部分输入文档,但确实希望搜索这些字段,因为它们将在基础lucene索引中索引(但不存储!),那么这将非常有用

在这两种情况下(要么完全禁用
\u源代码
,要么排除某些部分),如果计划更新文档,请记住需要使用索引api发送整个更新文档。事实上,您不能依赖于更新api提供的部分更新,因为索引中没有您首先索引的完整文档,您需要对其应用更改。

也可以查看另一个。如前所述,在大多数情况下,
\u source
字段帮助很大。尽管由于elasticsearch有效地存储了传入的整个文档,这看起来可能是一种浪费,但这确实非常方便(例如,当需要更新文档而不发送整个更新文档时)。最终,它隐藏了一个lucene实现细节,即如果您想取回字段,则需要显式存储字段,而用户通常希望取回他们发送给搜索引擎的内容。令人惊讶的是,
\u source
也有助于提高性能,因为它需要单个磁盘搜索,而不是检索多个存储字段可能导致的更多磁盘搜索。归根结底,
\u source
字段只是一个包含json的大型lucene存储字段,可以对其进行解析,以访问特定字段并对其进行处理,而无需单独存储

这就是说,根据您的用例(检索的字段数量),在底部查看source include/exclude可能会很有用,这允许您防止存储源字段的部分(例如文档的敏感部分)。如果您希望继续依赖
\u源代码,但不希望返回部分输入文档,但确实希望搜索这些字段,因为它们将在基础lucene索引中索引(但不存储!),那么这将非常有用


在这两种情况下(要么完全禁用
\u源代码
,要么排除某些部分),如果计划更新文档,请记住需要使用索引api发送整个更新文档。事实上,您不能依赖更新api提供的部分更新,因为索引中没有您首先索引的完整文档,您需要对其应用更改。

我想,但想确认,文档在这方面的区别似乎不是很清楚,谢谢你的来电。我想,但想确认一下,文档中似乎没有很清楚的区分,谢谢你的来电。非常有用的信息!特别是在性能方面,这将作为一个小的索引开始,而我们将其提升,因此重建索引不会造成太大的冲击,如果我们能够获得_source的性能收益,同时使用排除而不是显式包含,这将更有意义。谢谢不用担心,只需运行一些测试,看看什么更适合您的用例!非常有用的信息!特别是在性能方面,这将作为一个小的索引开始,而我们将其提升,因此重建索引不会造成太大的冲击,如果我们能够获得_source的性能收益,同时使用排除而不是显式包含,这将更有意义。谢谢不