gpt4 book ai didi

elasticsearch - ElasticSearch:将 “not_analyzed”字段设置为 “store” :“yes”的影响?

转载 作者:行者123 更新时间:2023-11-29 02:43:09 25 4
gpt4 key购买 nike

假设我在映射中将一个字符串字段指定为not_analyzed。如果再将"store":"yes"添加到映射,ElasticSearch会复制存储吗?我对not_analyzed字段的理解是,它们不是通过分析器运行的,没有按原样进行索引,但是客户端可以对其进行匹配。因此,如果一个字段同时是not_analyzedstore:yes,则可能导致ElasticSearch保留该字符串的两个副本。

我的问题:

  • 如果将字符串字段同时存储为not_analyzedstore:yes,是否将重复存储该字符串?

  • 我希望这很清楚。谢谢!

    最佳答案

    您在lucene中混合了索引字段和存储字段的概念,lucene是Elasticsearch建立在其之上的库。

    当字段进入反向索引时,该字段将被索引,这是Lucene用来提供强大而快速的全文本搜索功能的数据结构。如果要搜索字段,则必须为其编制索引。在为字段建立索引时,您可以决定是按原样对其进行索引还是要对其进行分析,这意味着要确定要应用于它的 token 生成器,这将生成 token 列表(单词)和 token 列表可以修改生成的 token (甚至添加或删除一些 token )的过滤器。索引字段的方式会影响您在该字段上的搜索方式。如果您为一个字段建立索引但不对其进行分析,并且其文本由多个单词组成,则仅查找该特定文本(包括空格)即可找到该文档。

    当您希望能够检索字段时,将存储该字段。假设Lucene也提供某种存储,这与倒排索引本身没有任何关系。
    当您使用lucene搜索时,您会返回匹配的文档ID列表。然后,您可以从它们的存储字段中检索一些文本,即从字面上显示为搜索结果的文本。如果您不存储字段,那么您将永远无法从lucene中将其取回(不过,对于Elasticsearch而言并非如此,因为我将在下面进行解释)。

    您可以具有只想搜索但从不显示的字段:已索引且未存储(Lucene中的默认值)。
    您可以具有要搜索和检索的字段:已索引并已存储。
    您可以具有不想搜索的字段,但是想要检索以显示它们。

    因此,这两个数据结构互不相关。如果同时在Lucene中索引和存储字段,则其内容将不会以相同的形式出现两次。当您将存储的字段发送给Lucene时,它们将按原样存储,而索引的字段可能会被分析,并且将成为反向索引的一部分,这是其他内容。使存储的字段可用于特定文档的检索(通过lucene文档ID),而使索引的字段可进行搜索,其结构应按字面意义将文本转换为结果,每个术语均作为关键字,并列出文档列表包含它的ID(发布列表)。

    当涉及到Elasticsearch时,情况有所变化。如果您未配置映射中存储的字段(默认值为store:no),则无论如何默认情况下都可以检索它。发生这种情况是因为elasticsearch始终将发送给它的整个源文档(除非禁用此功能)存储在lucene中,该特殊文档称为_source

    当您使用elasticsearch搜索时,默认情况下会返回整个源字段,但您也可以要求特定字段。在这种情况下,elasticsearch将检查这些特定字段是否存储在lucene中。如果它们是内容,则将从lucene中检索内容,否则,将从lucene中检索_source存储的字段,将其解析为json(拉解析),并提取那些特定的字段。在第一种情况下,速度可能会快一些,但不一定。如果您的资源确实很大,并且您只想加载几个字段,则将它们配置为存储在lucene中可能会加快加载过程;另一方面,如果_source不是那么大,并且您想加载许多字段,那么最好只加载一个存储的字段(_source),这将导致单个磁盘搜索,解析等。使用_source字段的情况很好。

    要回答您的问题:倒排索引和Lucene存储是两个完全不同的东西。仅当您决定存储字段(映射中的store:yes)时,您最终才在Lucene中拥有两个相同数据的副本,因为elasticsearch将相同的内容保留在json _source中,但这与事实无关您正在索引或分析该字段。

    关于elasticsearch - ElasticSearch:将 “not_analyzed”字段设置为 “store” :“yes”的影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15299799/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com