1.字段类型解释:
原始数据写入es中,默认在es中存储2份内容,一份是原始文档,即_source字段里的内容,另一份是倒排索引,倒排索引中的数据结构是倒排记录表,记录词与文档的关系。
-
_source
:原始文档。 -
_all
:它连接所有字段的值构成一个用空格(space)分隔的大string,该string被analyzed和index,但是不被store。当你不知道不清楚document结构的时候。字段里包含文档的所有信息,超级字段,包含其它字段的所有内容,当然也可以设置几个字段到_all属性或者排出某些字段。 -
store
:是否将原始字段写入索引,默认为no,如果在Lucene中,高亮功能和store属性是否存储息息相关,因为需要根据偏移位置到原始文档中找到关键字才能加上高亮的片段。在Elasticsearch,因为_source中已经存储了一份原始文档,可以根据_source中的原始文档实现高亮,在索引中再存储原始文档就多余了,所以Elasticsearch默认是把store属性设置为no。被store标记的fields被存储在和index不同的fragment中,以便于快速检索。虽然store占用磁盘空间,但是减少了计算。store的值可以取yes/no或者true/false,默认值是no或者false。 -
index
:文档索引到es中,默认对所有字段创建倒排索引(动态mapping解析的数字类型、布尔类型除外),某个字段是否生成倒排索引由字段的index属性控制。
类型 | 说明 |
---|---|
analyzed | 字段被索引,会分词,可搜索 |
not_analyzed | 字段被索引,不分词,可搜索,如人名、地名(字段完全匹配) |
no | 不写入索引,不被搜素 |
type
:索引index索引可能有多个类型type,每个类型有自己的映射mapping,不同类型的文档可以存放在同一个索引中,addMapping(type, mappingBuilder),
es6.x版本一个index只允许有一个type,后续版本会取消type功能