ElasticSearch简介

2020-11-02  本文已影响0人  刀鱼要到岛上掉

ElasticSearch

1.用途

  1. 搜索引擎:爬虫
  2. 电商搜索:数据库
  3. 站内搜索:系统数据
  4. 文件搜索:磁盘
  5. 使用案例一:
    ELK 结合使用,用于微服务架构下不同机器上微服务的日志聚合,日志分析。
    使用案例二:
    当我们打开淘宝,京东,等电商网站的时候,尝试输入一些关键词,然后系统就会给我们提供一些搜索建议。
    这种场景其实也是ES 使用的一个经典案例。
    使用案例三:
    Github使用Elasticsearch检索1300亿行的代码
    使用案例四:
    维基百科使用Elasticsearch提供全文搜索并高亮关键字,以及输入实时搜索(search-as-you-type)和搜索纠错(did-you-mean)等搜索建议功能。
    使用案例五:
    StackOverflow结合全文搜索与地理位置查询,以及more-like-this功能来找到相关的问题和答案

创建索引流程

分词处理

  1. 把需要分词的field中的内容进行分词处理

  2. 根据空格字符拆分

  3. 去除标点符号

  4. 去除停用词

  5. 转换大小写

    得到一个最终的单词列表,每个关键词封装成一个term对象关键词
    其中包含两部分
    1.关键词本身
    2.关键词所在的field

查询索引

  1. 获取用户查询内容
  2. 对用户输入的内容分析
    • 需要使用分词器对用户输入内容进行分词
  3. 把查询的内容进行封装
    • 封装成query对象
  4. 根据query对象查询索引,把查询结果合并。需要根据匹配相关度打分,根据得分降序排列。
    • tf:关键词在单个文章中出现的频率;tf越高相关度越高
    • df:关键词在多个文章中出现的频率:df越高相关度越低

节点

data节点

node.master:false
node.data:true

协调节点

node.master:false
node.data:false

cluster state

上一篇 下一篇

猜你喜欢

热点阅读