美文网首页
ElasticSearch简介

ElasticSearch简介

作者: 刀鱼要到岛上掉 | 来源:发表于2020-11-02 14:10 被阅读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功能来找到相关的问题和答案

创建索引流程

  • 一个原始文档对应一个document

  • 文档每个属性放到field中

    例如:文件名,内容,大小。。。

    • field相关属性:
    • 数据类型:文本类型,数值类型,日期
    • 是否索引,是否在字段进行查询
    • 是否分词
    • 是否存储
  • 每个document有一个唯一id

分词处理

  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

相关文章

网友评论

      本文标题:ElasticSearch简介

      本文链接:https://www.haomeiwen.com/subject/askmvktx.html