当前位置:  开发笔记 > 前端 > 正文

分析vs not_analyzed:存储大小

如何解决《分析vsnot_analyzed:存储大小》经验,为你挑选了1个好方法。

我最近使用ElasticSearch 2.开始当我已了解分析 VS not_analyzed在映射,not_analyzed应在存储更好(https://www.elastic.co/blog/elasticsearch-storage-the-true-story-2.0和HTTPS ://www.elastic.co/blog/elasticsearch-storage-the-true-story).出于测试目的,我创建了一些索引,其中包含所有String字段(默认情况下),然后我创建了一些其他索引,其中所有字段都是not_analyzed,当我检查索引的大小并且我看到索引时出现了not_analyzed字符串 40%!! 我在每个索引中插入相同的文档(35000个文档).

知道为什么会这样吗?我的文档是简单的JSON文档.我在每个文档中有60个字符串字段,我想将其设置为not_analyzed,我尝试将每个字段设置为未分析并创建动态模板.

我编辑添加映射,虽然我认为它没有什么特别之处:

    {
        "mappings": {
            "my_type" : {
                          "_ttl" : { "enabled" : true, "default" : "7d" },
                          "properties" : {
                                "field1" : {
                                    "properties" : {
                                        "field2" : {
                                            "type" : "string", "index" : "not_analyzed"
                                        }
                                        more not_analyzed String fields here
                                  ...
                              ...
                          ...
}

Peter Dixon-.. 6

not_analyzed字段仍然被编入索引.他们事先没有对它们进行任何转换("分析" - 用Lucene的说法).

举个例子:

(文件1)"快速的棕色狐狸跳过懒狗"

(Doc 2)"像狐狸一样懒惰"


    标准分析器创建的简化发布列表(analyzed字符串字段的默认值- 标记化,小写,删除停用词):

"brown": [1]  
"dog": [1]  
"fox": [1,2]  
"jumped": [1]  
"lazy": [1,2]  
"over": [1] 
"quick": [1]

30个字符的字符串数据


    "index": "not_analyzed"以下内容创建的简化发布列表:

"The quick brown fox jumped over the lazy dog": [1]  
"Lazy like the fox": [2] 

62个字符的字符串数据


分析导致输入被标记化并标准化,以便能够使用术语查找文档.

但结果是,文本单元被缩减为标准化术语(与整个字段相比not_analyzed),并且所有文档中的所有冗余(标准化)术语都折叠为单个逻辑列表,从而节省了通常所有的空间由重复的术语和停用词消耗.



1> Peter Dixon-..:

not_analyzed字段仍然被编入索引.他们事先没有对它们进行任何转换("分析" - 用Lucene的说法).

举个例子:

(文件1)"快速的棕色狐狸跳过懒狗"

(Doc 2)"像狐狸一样懒惰"


    标准分析器创建的简化发布列表(analyzed字符串字段的默认值- 标记化,小写,删除停用词):

"brown": [1]  
"dog": [1]  
"fox": [1,2]  
"jumped": [1]  
"lazy": [1,2]  
"over": [1] 
"quick": [1]

30个字符的字符串数据


    "index": "not_analyzed"以下内容创建的简化发布列表:

"The quick brown fox jumped over the lazy dog": [1]  
"Lazy like the fox": [2] 

62个字符的字符串数据


分析导致输入被标记化并标准化,以便能够使用术语查找文档.

但结果是,文本单元被缩减为标准化术语(与整个字段相比not_analyzed),并且所有文档中的所有冗余(标准化)术语都折叠为单个逻辑列表,从而节省了通常所有的空间由重复的术语和停用词消耗.

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有