Beats,Logstash负责数据收集与处理。相当于ETL(Extract Transform Load)。
Elasticsearch负责数据存储、查询、分析。
Kibana负责数据探索与可视化分析。

1、Elasticsearch的常见术语。注意:Elasticsearch6.x版本以后概念发生了变化。

2、索引Index:由具有相同字段的文档列表组成。索引Index是文档的集合。相当于数据库中的数据表。

  Elasticsearch 6.x版本以后,一个索引Index下面最多只能建一个Type或者未来没有Type了。索引中存储具有相同结构的文档(Document)。相当于数据表,数据表中有schema的概念,数据表有自己的表结构的定义。而Index的mapping相当于数据表的schema的概念,Index也需要定义字段名称和类型的。

  每个索引都有自己的mapping定义,用于定义字段名和类型。一个集群可以有多个索引。

3、文档Document:用户存储在es中的数据文档。es中存储的最小单元。相当于数据库中的一行数据。每个文档都有唯一的id标识,可以自行指定或者es自动生成。

Json Object,由字段Field组成,常见数据类型如下:
    字符串:text(分词)、keyword(不分词)。
    数值型:long、integer、short、byte、double、float、half_float、scaled_float。
    布尔型:boolean。
    日期:data。
    二进制:binary。
    范围类型:interger_range、float_range、long_range、double_range、date_range。

4、Document MetaData。元数据,用于标注文档的相关信息。

_index:文档所在的索引名称。
_type:文档所在的类型名称。
_id:文档唯一的id。
_uid:组合id,由_type和_id组成(6.x_type不再起作用,同_id一样)。
_source:文档的原始Json数据,可以从这里获取每个字段的内容。
_all:整合所有字段内容到该字段,默认禁用。

5、节点Node:一个Elasticsearch的运行实例,是集群的构成单元。

6、集群Cluster:由一个或者多个节点组成,对外提供服务。

7、Elasticsseach提供的Rest api。

Elasticsseach集群对外提供的RESTFul API,REST是REpresentational State Transfer的缩写。
URI指定资源,如Index、Document等等。
Http Method,指明资源操作类型,如GET、POST、PUT、DELETE等等。
Rest API常用的两种交互方式:Curl命令行、Kibana DecTools。
ElasticSearch有专门的Index API,用于创建(PUT)、查看(GET)、更新(Post)、删除(Delete)索引配置等等。

8、Elasticsseach提供的Rest api使用。

  创建文档,指定id创建文档的api。创建文档的时候,如果索引不存在,es会自动创建对应的index和type。

PUT /index/type/id{
"username":"zhangsan",
"age":
}

查询文档,指定要查询的文档id。_source存储了文档的完整原始数据。

get /index/type/id

查询文档,搜索所有文档,用到_search,查询语句json格式,放到http body中发送到es,如下所示:

get /index/type/_search

返回_id为1的文档。

get /index/type/_search{
"query":{
  "term":{
  "_id":""
  }
}
}

response结果,参数解释如下所示:

 response结果,参数解释如下所示:
{
"took" : , # took是查询耗时,单位是ms。
"timed_out" : false,
"_shards" : {
"total" : ,
"successful" : ,
"skipped" : ,
"failed" :
},
"hits" : { # hits是命中的结果集。
"total" : , # total是符合条件的总文档数。
"max_score" : 0.2876821,
"hits" : [ # hits是返回的文档详情数据数组,默认前10个文档。
{
"_index" : "test_index", # _index是索引名称。
"_type" : "doc",
"_id" : "", # _id是文档的id。
"_score" : 0.2876821, # _score是文档的得分。
"_source" : { # _source是文档的详情。
"username" : "wangwu",
"age" :
}
}
]
}
}

批量创建文档API,es允许一次创建多个文档,从而减少网络传输开销,提升写入速率。endponit为_bulk,即url最后是_bulk,http method是post请求,如下所示:

action_type包含,index(如果存在则覆盖)、update、create(如果存在则报错)、delete这几种类型。

es允许一次查询多个文档,endpoint为_mget,如下所示:

9、Elasticsearch的倒排索引与分词。举例,书的目录页与索引页,目录页对应正排索引,索引页对应倒排索引。es存储的是一个json格式的文档,其中包含多个字段,每个字段会有自己的倒排索引。

  a、正排索引就是文档Id到文档内容,单词的关联关系。倒排索引,就是单词到文档Id的关联关系。

  b、倒排索引是搜索引擎的核心,主要包含两个部分。单词词典(Term Dictionary),倒排列表(Posting List),Posting是倒排索引项。

  c、单词词典(Term Dictionary)是倒排索引的重要组成。

一是记录所有文档的单词,一般都比较大,
二是记录单词到倒排列表的关联信息,记录了单词关联了那些文档,记录一下关联信息,就可以找到关联的文档的id,通过关联id找到真正的文档信息。

  d、倒排索引中的倒排列表。

倒排列表(Posting List)记录了单词对应的文档集合,由倒排索引项(Psoting)组成。
倒排索引项(Posting)主要包含如下信息:
    文档Id,用于获取原始信息。
    单词频率(TF,Term Frequency),记录该单词在该文档中的出现次数,用于后续相关性算分。
    位置(Position),记录单词在文档中的分词位置(多个),用于做此语搜索(Phrase Query)。
    偏移(Offset),记录单词在文档的开始和结束位置,用于做高亮显示。

10、分词,是指将文本转换成一系列单词(term or token)的过程,也可以叫做文本分词,在es里面称为Analysis,如下所示:

  分词器,负责进行分词,分词器是es中专门处理分词的组件,英文名称为Analyzer。分词器的调用顺序,Character Filters ->Tokenizer ->Token Filter,它的组成如下所示:

  Character Filters,针对原始文本进行处理,比如去除html特殊标记符。
  Tokenizer,将原始文本按照一定规则切分为单词。
  Token Filter,针对Tokenizer处理的单词就行再加工,比如转小写,删除或者新增等等处理。

11、Analyzer api,es提供了一个测试分词的api接口,方便验证分词效果,endpoint是_analyze。

  a、可以直接指定analyzer进行测试。

  b、可以直接指定索引中的字段进行测试。

  c、可以自定义分词器进行测试。

12、Elasticsearch自带分词器,包含Standard、Simple、Whitespace、Stop、Keyword、Pattern、Language,如下所示:

a、Standard Analyzer,默认分词器,特性为:a、按照切分,支持多语言,b、小写处理。
    包含Tokenizer(Standard)和Token Filters(Standard -> Lower case -> Stop[disabled by default])。
b、Simple Analyzer,特性为:a、按照非字母进行切分,b、小写处理。
    包含Tokenizer(Lower Case)。
c、Whitespace Analyzer,特性为:a、按照空格进行切分。
    包含Tokenizer(Whitespace)。
d、Stop Analyzer,Stop word指语气助词等修饰性的此语,比如the、an、的、这等等。特性为,a、相比Simple Analyzer多了Stop word处理。
    包含Tokenizer(Lower Case),Token Filters(Stop)。
e、Keyword Analyzer,特性为,a、不分词,直接将输入作为一个单词输出。
    包含Tokenizer(Keyword)。
f、    Pattern Analyzer,特性为,a、通过正则表达式自定义分隔符。b、默认是\W+,即非字词的符号作为分隔符。
    包含Tokenizer(Pattern),Token Filters(Lower case -> Stop[disabled by default])。
g、Language Analyzer,提供了30+常见语言的分词器。
    arabic、armenian、basque、bengali、brazilian、bulgarian、catalan、cjk、czech、danish、dutch、english。

13、中文分词,指的是将一个汉字序列切分成一个一个单独的词。在英文中,单词之间是以空格作为自然分界符,汉语中词没有一个形式上的分界符。

常用中文分词系统。
  IK中文分词器。
      a、实现中英文单词的切分,支持ik_smart,ik_maxword等模式。
      b、可以自定义词库,支持热更新分词词典。
  jieba中文分词器。
    a、python中最流行的分词系统,支持分词和词性标注。
    b、支持繁体分词,自定义分词,并行分词等等。

14、自定义分词,当自带的分词无法满足需求时候,可以自定义分词。通过自定义Character Filters、Tokenizer和Token Filter实现。

1)、Character Filters。
    a、在Tokenizer之前对原始文本进行处理,比如增加、删除或者替换字符等等。
    b、自带的如下所示:
        Html Strip去除html标签和转换html实体。
        Mapping进行字符替换操作。
        Pattern Replace进行正则匹配替换。
    c、会影响后续Tokenizer解析的postion和offset的信息。
2)、Tokenizer。
    a、将原始文本按照一定规则切分为单词(term or token)。
    b、自带的如下所示:
        standard按照单词进行分割。
        letter按照非字符类进行分割。
        whitespace按照空格进行分割。
        UAX URL Email按照standard分割,但不会分割邮箱和url。
        NGram和Edge NGram连词分割。
        Path Hierarchy按照文件路径进行切割。
3)、Token Filter。
    a、对于Tokenizer输出的单词(term)进行增加、删除、修改等等操作。
    b、自带的如下所示:    
        lowercase将所有term转换为小写。
        stop删除stop words。
        NGram和Edge NGram连词分割。
        Synonym添加近义词的term。

15、分词使用说明,索引时分词和查询时候分词的选择。

分词使用说明,索引时分词和查询时候分词的选择。
1)、分词会在如下两个时机使用:
    a、创建或者更新文档的时候(Index Time),会对相应的文档进行分词处理。
    b、查询的时候(Search Time),会对查询语句进行分词。
2)、索引时分词,是通过配置Index Mapping中每个字段的analyzer属性实现的,不指定分词的时候,默认使用standard分词器。    
3)、查询时分词的指定方式有如下几种。
    a、查询的时候通过analyzer指定分词器。
    b、通过index mapping设置search_analyzer实现,这个时候可以设置查询时分词,同事设置查询时分词。
4)、一般情况下,不需要特定指定查询时分词器,直接使用索引时分词器即可,否则会出现无法匹配的情况。
5)、分词的使用建议。
    a、明确字段是否需要分词,不需要分词的字段就将type设置为keyword,可以节省空间和提高写性能。
    b、善用_analyze_api,查看文档具体分词结果。
    c、多动手测试,查看文档具体的分词结果。

16、Elasticsearch Mapping设置。类似数据库中的表结构定义,主要作用如下所示:

a、定义Index下的字段名(Field Name)。
b、定义字段的类型,比如数据型,字符串型,布尔型等等。
c、定义倒排索引相关的配置,比如是否索引,记录position等等。

如何获取到一个索引Index的mapping呢,如下所示:

如何自定义mapping呢,自定义mapping的api,如下所示:

自定义Mapping注意事项。

1)、Mapping中的字段类型一旦设定以后,禁止直接修改,原因如是所示,Lucene实现的倒排索引生成后不允许进行修改。
    如果要进行修改字段类型的话,重新建立新的索引,然后做reindex操作。
2)、允许新增字段,通过dynamic参数来控制字段的新增。因为新增字段,类型不定,对于es来说,只是新增了一个倒排索引。dynamic参数是和properties一个级别的参数配置。
    a、true(默认),允许自动新增字段。
    b、false,不允许自动新增字段,但是文档可以正常写入,但无法对字段进行查询等操作。
    c、strict文档不能写入,报错。
3)、copy_to参数,将该字段的值复制到目标字段,实现类似_all的作用,不会出现在_source中,只用来搜索使用。copy_to参数和type一个级别的参数。
4)、index参数,控制当前字段是否索引,默认为true,即记录索引,false不记录,即不可以搜索。index参数和type一个级别的参数。如果不希望被查询即可设置为false。
5)、index_options用于控制倒排索引记录的内容,有如下4种配置。index_options参数和type一个级别的参数。
  a、docs只记录doc id。
  b、freqs记录doc id和term frequencies。
  c、positions记录doc id、term frequencies和term position。
  d、offsets记录doc id、term frequencies、term position和character offsets。
  e、text类型默认配置为positions,其他默认配置为docs。记录内容越多,占用空间越大。
6)、null_value,当字段遇到null值得时候得处理策略,默认为null,即空值,此时es会忽略该值,可以通过设定该值设定字段的默认值。null_value参数和type一个级别的参数。
更多参数详见官网文档即可。

17、Elasticsearch的数据类型。

1)、核心的数据类型(字段field对应的类型type)。
    a、字符串类型text(分词的)、keyword(不分词的)。
    b、数值型:long、integer、short、byte、double、float、half_float、scaled_float。
    c、布尔型:boolean。
    d、日期:data。
    e、二进制:binary。
    f、范围类型:interger_range、float_range、long_range、double_range、date_range。
2)、复杂数据类型。
    a、数组类型array。
    b、对象类型object。
    c、嵌套类型nested object。
3)、地理位置数据类型。
    a、geo_point。
    b、geo_shape。
4)、专用类型。
    a、记录ip地址ip。
    b、实现自动补全completion。
    c、记录分词数token_count。
    d、记录字符串hash值murmur3。
    e、percolator。
    f、join。
5)、多字段特性multi_fields。
    允许对同一个字段采用不同得配置,比如分词,常见例子如对人名实现拼音搜索。只需要在人名种新增一个子字段为pinyin即可。

18、Dynamic Mapping,es可以自动识别文档字段类型,从而降低用户使用成本,如下所示。

es是依靠json文档的字段类型来实现自动识别字段类型,支持的类型如下所示:

19、dynamic日期与数字识别。

1)、日期的自动识别可以自行配置日期格式,以满足各种需求。
    a、默认是["strict_date_optional_time","yyyy/MM/dd HH:mm:ss Z || yyyy/MM/dd Z"]
    b、strict_date_optional_time是ISO datetime的格式,完整格式类似下面所示:
        YYYY-MM-DDThh:mm:ssTZD。例如,1994-07-12T19:20:30+01:00
    c、dynamic_date_formats可以自定义日期类型。该参数是在type参数下一级的参数。
    d、date_detection可以关闭日期自动识别的机制。该参数是在type参数下一级的参数。
2)、字符串是数字的时候,默认不会自动识别为整数,因为字符串中出现数字是完全合理的。
    a、numeric_detection可以开启字符串中数字的自动识别。该参数是在type参数下一级的参数。

20、dynamic-template(动态模板)简介。

1)、允许根据es自动识别的数据类型、字段名等来动态设定字段类型,可以实现如下效果。
    a、所有字符串类型都设定为keyword类型,即默认不分词的。
    b、所有以message开头的字段都设定为text类型,即分词。
    c、所有以long_开头的字段都设定为long类型。
    d、所有自动匹配为double类型都设定为float类型,以节省空间。
2)、匹配规则一般有如下几个参数。
    a、match_mapping_type匹配es自动识别的字段类型,如boolean、long、string等等。
    b、match,unmatch匹配字段名。
    c、path_match,path_unmatch匹配路径。
3)、字符串默认使用keyword类型。es默认会为字符串设置为text类型,并增加一个keyword的子字段。

字符串默认使用keyword类型。es默认会为字符串设置为text类型,并增加一个keyword的子字段。

动态模板映射以后是这样的。

以message开头的字段都设置为text类型。 dynamic_templates,数组,可以指定多个匹配规则。可以设定多个模板,执行顺序,从上到下的。

21、自定义mapping的建议。

自定义mapping的操作步骤如下所示。
    a、写一条文档到es的临时索引中,获取es自动生成的mapping。
    b、修改步骤a得到的mapping,自定义相关配置。
    c、使用步骤b的mapping创建实际所需索引。

最方便的是根据动态模板进行创建。

22、索引模板。

  a、索引模板,英文为Index Template,主要用于在新建索引的时候自动应用预先设定的配置。简化索引创建的操作步骤。
    可以设定索引的配置和mapping。
    可以有多个模板,根据order设置,order大的覆盖小的配置。

aaarticlea/jpeg;base64,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" alt="" />

作者:别先生

博客园:https://www.cnblogs.com/biehongli/

如果您想及时得到个人撰写文章以及著作的消息推送,可以扫描上方二维码,关注个人公众号哦。

Elasticsearch 6.x版本全文检索学习之倒排索引与分词、Mapping 设置的更多相关文章

  1. Elasticsearch 6.x版本全文检索学习之分布式特性介绍

    1.Elasticsearch 6.x版本全文检索学习之分布式特性介绍. 1).Elasticsearch支持集群默认,是一个分布式系统,其好处主要有两个. a.增大系统容量,如内存.磁盘.使得es集 ...

  2. Elasticsearch 6.x版本全文检索学习之Search API

    Elasticsearch 6.x版本全文检索学习之Search API. 1).Search API,实现对es中存储的数据进行查询分析,endpoind为_search,如下所示. 方式一.GET ...

  3. Elasticsearch 6.x版本全文检索学习之数据建模

    1.什么是数据建模. 答:数据建模,英文为Data Modeling,为创建数据模型的过程.数据模型Data Mdel,对现实世界进行抽象描述的一种工具和方法,通过抽象的实体及实体之间联系的形式去描述 ...

  4. Elasticsearch 6.x版本全文检索学习之集群调优建议

    1.系统设置要到位,遵照官方建议设置所有的系统参数. https://www.elastic.co/guide/en/elasticsearch/reference/6.7/setup.html 部署 ...

  5. Elasticsearch 6.x版本全文检索学习之聚合分析入门

    1.什么是聚合分析? 答:聚合分析,英文为Aggregation,是es除搜索功能外提供的针对es数据做统计分析的功能.特点如下所示: a.功能丰富,提供Bucket.Metric.Pipeline等 ...

  6. Elasticsearch全文检索学习

    ElasticSearch官方网址:https://www.elastic.co ElasticSearch官方网址(中文):https://www.elastic.co/cn/ Elasticsea ...

  7. SpringBoot整合ElasticSearch实现多版本的兼容

    前言 在上一篇学习SpringBoot中,整合了Mybatis.Druid和PageHelper并实现了多数据源的操作.本篇主要是介绍和使用目前最火的搜索引擎ElastiSearch,并和Spring ...

  8. Elasticsearch 1.X 版本Java插件开发

    接上一篇<Elasticsearch 2.X 版本Java插件开发简述> 开发1.X版本elasticsearch java插件与2.X版本有一些不同,同时在安装部署上也有些不同,主要区别 ...

  9. Elasticsearch 2.X 版本Java插件开发简述

    1:elasticsearch插件分类简述 2:Java插件开发要点 3:如何针对不同版本elasticsearch提供多版本的插件 4:插件具有外部依赖时遇到的一些问题(2016-09-07更新) ...

随机推荐

  1. 【Springboot】spring-boot-starter-redis包报错 :unknown

    springboot集成redis时,引入spring-boot-starter-redis包报错,maven找不到这个资源.如下图: 我的项目中,spring boot是 用的2.0.4版本.spr ...

  2. 在mysql中如何写注释

    MySql--三种注释写法 #这是注释/*注释内容*/ --  注释   (--与注释内容之间必须加空格)

  3. jenkins构建,拉取不到最新版本代码,报clock of the subversion server appears to be out of sync

    一.问题描述 今天遇到个问题,我这边提交了代码后,一般会马上去jenkins上点一下,构建到开发环境上. 但是发现修改没生效,后来发现,提交的版本假设是3250,但是jenkins构建使用的版本为32 ...

  4. C++ 面向对象程序设计复习大纲

     这是我在准备C++考试时整理的提纲,如果是通过搜索引擎搜索到这篇博客的师弟师妹,建议还是先参照PPT和课本,这个大纲也不是很准确,自己总结会更有收获,多去理解含义,不要死记硬背,否则遇到概念辨析题会 ...

  5. Difference between JDK, JRE and JVM

    With Java programming language, the three terms i.e. JDK, JRE and JVM will always be there to unders ...

  6. ros2中创建一个python package

    完整的python package的目录结构如下: source /opt/ros/dashing/setup.bash cd ros2_ws/src && ros2 pkg crea ...

  7. spring源码分析6: ApplicationContext的初始化与BeanDefinition的搜集入库

    先前几篇都是概念的讲解:回顾下 BeanDefinition 是物料 Bean是成品 BeanFactory是仓库,存储物料与成品 ApplicationContext初始化搜集物料入库,触发生产线, ...

  8. 假设高度已知,请写出三栏布局,其中左右各为300px 中间自适用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 【C#】学习笔记 Linq相关

    Language-Integrated Query(语言集成查询) 写了个demo,具体看

  10. Thymeleaf对象的使用:基本对象

    Thymeleaf中有许多内置对象,可以在模板中实现各种功能.下面有几个基本对象.Web对象常用有:request.session.servletContext.Thymeleaf提供了几个内置变量p ...