目录
ES核心操作
映射详解
描述数据结构,映射到es中存储的结构等。
映射定义索引中有什么字段、字段的类型等结构信息。相当于数据库中表 结构定义,或 solr中的schema。因为lucene索引文档时需要知道该如何来索引存储文档的字段。创建映射,默认 science就是一个doc type 映射。字段名称 和字段类型。指定type 和 映射 数据。 给mapping添加字段 这些操作。
ES中支持 静态映射 , 动态映射 两种方式。 通过dynamic字段来指定mapping的动态效果,dynamic字段可以有如下选项:通过数据库来说,如果字段不存在的,添加肯定会报错,但是 es 可以动态添加的,它是将数据索引起来,供我们搜索,这就是为什么es会出现这种情况。
这个content之前创建时未创建,则会默认创建一个字段。 而采用上面的方式添加配置
动态映射 识别出来 映射 下面 会将字符串识别成时间。
时间匹配。将长的像时间的字符串,尝试格式化成时间。
也可以不需要指定 时间匹配功能。 通过 date_detection 就可以配置
映射的元字段
索引文档, 包括source ,存储的字段。
字段类型
字段类型定义了该如何索引字段值,ES提供了丰富的字段类型定义. Field datatypes | Elasticsearch Guide [6.5] | Elastictext 和 keyword的区别, 在下面进行分词过后,进行存储,指向 id
上面的复合类型,也可以设置设置权重,以及设置大小的。
字段的type (Data type)定义了如何索引存储字段值,还有一些属性可以让我们 根据需要来覆盖默认的值或进行特别定义
包括上面的 分析, 转换 复制 动态映射等 等参数,都可以给我们设置的,包括enable ,等参数设置等等。
对于mapping中映射关系 ,可以定义属性,不断嵌套 属性的结构类型。短语查询,
index 执行反向索引
聚合和普通的搜索,在官网中可以看到的,
包括里面专门定义的查询语言
包括里面所有的特性 等都在es官方网站中可以看到。
分词器
一个可分词字符串字段的值输入到analyzer,会被转换成一组词, ES有一系列内建的analyzer:Analyzers | Elasticsearch Guide [6.5] | Elastic
包括下面的
标准 简单分词器等
简单分词器 会数据进行分词
这里面有Keyword Analyzer 包括 Language Analyzers 语言分词器
Analyzer 分析器 在 ES 中一个 Analyzer 由下面三种组件组合而成:
- character filter :字符过滤器,对文本进行字符过滤处理,如处理文本中的html标 签字符。处理完后再交给tokenizer进行分词。一个analyzer中可包含0个或多个字符过 滤器,多个按配置顺序依次进行处理。
- tokenizer : 分词器,对文本进行分词。一个 analyzer 必需且只可包含一个 tokenizer 。
- token filter : 词项过滤器,对 tokenizer 分出的词进行过滤处理。如转小写、停用词处理、同义词处理。一个analyzer 可包含 0 个或多个词项过滤器,按配置顺序进行过滤。
多重字段
当我们需要对一个字段进行多种不同方式的索引时,可以使用fields多重字段定义。如一个字符串字段即需要进行text分词索引,也需要进行keyword 关键字索引来支持排序、聚合;或需要用不同的分词器进行分词索引。
doc_values、fielddata、index
doc_values:大作多等数需字要段正进向行索了引反。向索引,因此可以用于搜索,但排序、聚合、scripts操作等需要正向索引。
fielddata:大多数字段可利用doc_values来进行排序、聚合、scripts等操作,但doc_values
不支持text字段,text字段利用fielddata机制来替代。
index: doc_values指定文档是否进行正向索引,index指定文档是否进行反向索引