• elasticsearch概念及倒排索引简单介绍


    一.概念

      集群:一个或者多个节点组织在一起

      节点:一个节点是集群中的一个服务器,由一个名字来标识,默认是一个随机的漫威角色名字。

      分片:将索引划分为多份的能力,允许水平分割和扩展容量,多个分片相应请求,提高性能和吞吐量。

      副本:创建分片的一份或多份的能力,在一个节点失败,其余节点可以顶上。

    二.elasticsearch也需要存取数据,与mysql对比

    elasticsearch mysql
    index(索引) 数据库
    type(类型)
    documents(文档)
    fields()

    三.倒排索引:

      1.百度百科:

        倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。

      2.我的理解:

        简单理解:会对每个文件分词,建立的是分词(Term)和文档(Document)之间的映射关系,在倒排索引中,数据是面向词(Term)而不是面向文档的。如:

    关键词 倒排列表

    django

    文章1,文章2......(是一个列表)
    Python 文章2,文章3......
    scrapy 文章4,文章5......

        但是这样还不够,有的文章关键词(如python)出现的次数不一样,权重也不一样,因此有如下的结构(倒排列表中分别对应文章,关键词出现的位置以及关键词出现的频率【TF:词频】):

    关键词 倒排列表
    python (文章1,<2,10>,2
    Python (文章2,<5,10,30,45>,4
    scrapy (文章4,<5>,1

      3.倒排索引需要解决的问题(elasticsearch已解决):

        (1)大小写转换的问题,如python和PYTHON应该视作同一个词;

        (2)词干提取,looking和look应该视作同一个词;

        (3)分词:如屏蔽系统应该分为“屏蔽”,“系统”还是”屏蔽系统“;

        (4)倒排索引文件过大,应压缩解码

  • 相关阅读:
    破衣服的回忆
    underscorejs 源码走读笔记
    关于书籍《区块链以太坊DApp开发实战》的内容告示
    从区块链技术研发者的角度,说说我的区块链从业经历和对它的理解
    简介 以太坊 2.0 核心 之 共识机制的改变
    一般电商应用的订单队列架构思想
    详细讲解:零知识证明 之 ZCash 完整的匿名交易流程
    HyperLogLog 算法的原理讲解以及 Redis 是如何应用它的
    由 System.arraycopy 引发的巩固:对象引用 与 对象 的区别
    如何独立开发一个网络请求框架
  • 原文地址:https://www.cnblogs.com/lyq-biu/p/9854893.html
Copyright © 2020-2023  润新知