zoukankan      html  css  js  c++  java
  • DAY 113 ES倒排索引

    Elasticsearch之-倒排索引

    一 倒排索引是什么

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

    二 举例

    例如有如下三个文件:

    文件A:通过Python django搭建网站

    文件B:通过Python scrapy爬取网站数据

    文件C:scrapy-redis分布式爬虫

    现在我们要查询,带有Python的文件,正常是对每个文件进行遍历,每个文件遍历一次,如果文件特别大,每个文件有一亿个字符,总共有一亿各文件,每个我们都要遍历,非常消耗资源

    在存储文件之前,先对文件进行分析,将文件分词,对分词建立索引,例如下面一句话

    1 今天是星期天我们出去玩

    2 明天是星期天,放假

    3 今天天气很晴朗

    4 xxx

    5 他们出去玩了

     

    关键词文章
    今天 文章1,文章3
    星期天 文章2
    出去玩 文章5,文章1

    实际上es在做存储的时候,更详细,如下表

    关键词文章
    今天 (文章1,<2,10>,2) (文章3,<8>,1)
    星期天 (文章2,<12,25,100>,3)
    出去玩 (文章5,<11,24,89>,3)(文章1,<8,19>,2)

    今天出现在哪个文章,出现的位置和出现的次数

    三 倒排索引待解决的问题

    1 大小写转换问题,如python和Python应该为同一个词

    2 词干抽取,looking和look应该处理为同一个词

    3 分词,如 屏蔽系统 是屏蔽 和系统两个词还是 为屏蔽系统一个词

    4 倒排索引文件过大,需要压缩编码

     

  • 相关阅读:
    用继承和组合的知识构造一辆汽车,功能需求见注释
    应用组合的方式实现继承关系
    PL/SQL 07 触发器 trigger
    PL/SQL 05 存储过程 procedure
    PL/SQL 04 游标 cursor
    PL/SQL 03 流程控制
    PL/SQL 02 声明变量 declare
    PL/SQL 01 代码编写规则
    Oracle基础 12 对象 objects 同义词/序列/试图/索引
    Oracle基础 11 约束 constraints
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14921780.html
Copyright © 2011-2022 走看看