Elastic Stack-Elasticsearch使用介绍(二)

    写博客,更要努力写博客!

二、Mapping介绍

   Mapping类似于数据库中的表结构的定义:这里我们试想一下表结构定义需要那些:

   1.字段和字段类型,在Elasticsearch中的体现就是索引的结构,定义索引的字段Field Name和字段类型,上一篇有简单介绍一下字段有那些类型;

   2.索引,在数据库中我们可以定义字段索引,在Elasticsearch中就是相当于是否分词,按照分词器分词;

   先来用我们的神器先自定义一个Mapping:

   

Elastic Stack-Elasticsearch使用介绍(二)

   接下来在在查询下Mapping的结构:

  

Elastic Stack-Elasticsearch使用介绍(二)

 三、Mapping常用参数介绍

    type:指定参数的类型;

    analyzer:指定分词器;

    boost:指定字段的权重,

    copy_to:指定某几个字段合并;

   dynamic:字段动态添加 ,有3种取值:

         true:无限制;

         false:数据可写入但该字段不保留;

         strict:无法写入抛异常;

   format:"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" ,格式化 此参数代表可接受的时间格式 3种都接受;

   ignore_options:这个选项用于控制倒排索引记录的内容,有4种配置:

         docs:只记录文档号;

         freqs:文档号 + 词频;

         postions:文档号 + 词频 + 位置;

         offsets:文档号 + 词频 + 位置 + 偏移量;

  index:指定某字段是否被索引;

  fileds:可以对一个字段提供多种索引模式;

  null_value:当字段遇到null值时候的处理机制,默认为null空值,此时es会忽略该值,可以通过设定该值设定该字段的默认值来改变null不显示成空值:

  properties:嵌套属性;

  search_analyzer:查询分词器;

  similarity:用于指定文档评分模型,有2种配置:

       default:Elasticsearch和Lucene使用的默认TF / IDF算法;

       BM25:Okapi BM25算法;

  基本上常用就是这些,有没有介绍到的大家可以参考官方文档;

四、字段的数据类型

  上上篇介绍过一些简单的数据类型在官方称为核心数据类型,这里不做过多的介绍了,这里主要介绍一下复杂的数据类型、地理数据类型、专用数据类型这3种;

  复杂的数据类型

  1.数组数据类型(Array datatype)

  Elasticsearch中没有专门的数组类型,默认情况下每个字段都可以存储0个或者多个值,但是这些值得类型必须是一样的;

  2.对象数据类型(Object datatype)

  提交文档的时候是Json文档,内部的字段可以嵌套Json对象;

  3.嵌套数据类型(Nested datatype)

  嵌套数据类型就是1+2的组合,数组里面放Json;

  地理数据类型

  1.地理数据类型(Geo-point datatype)

  对经纬度的查询搜索;

  2.形状数据类型(Geo-Shape datatype)

 对多边形的的形状的查询;

 专用数据类型

 1.IP数据类型

 2.完整的数据类型

 提供search-as-you-type的搜索,这个还是比较有用的大家可以参考下官方文档;

 剩下的也使用不多,大家可以参考下官方文档,这里就不做过多介绍;

五、Search API介绍

 Search API实现了对Elasticsearch中存储的数据进行查询分析,通过_search方式去查询,基本上有以下4种情况:

 

Elastic Stack-Elasticsearch使用介绍(二)

1.不指定索引的情况下查询的是Elasticsearch中所有的数据;

2.指定index就是对单个的index查询;

3.另外还可以指定多个索引;

4.还可以通过通配符的形式去匹配索引;

Search API查询的方式主要有两种:URL Search和Request Body Search,分别对以下两种情况进行下介绍:

URL Search:

通过URL的形式指定Query参数实现搜索,我们先来一个demo,然后介绍下常用下参数:

首先先添加些数据:

Elastic Stack-Elasticsearch使用介绍(二)

接下来进行下查询

Elastic Stack-Elasticsearch使用介绍(二)

这样就完成了ES查询,接下来我们说说常用参数:

q:指定查询的参数,也就是我们要搜索的文档的内容;

df:指定我们查询文档指定的字段;

sort:指定排序的字段;

form:第几条开始;

size:一页几条;

剩下大家可以查看下官方文档,

Request Body Search

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfpsx.html