zoukankan      html  css  js  c++  java
  • ElasticSearch 倒排索引

    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 倒排索引文件过大,需要压缩编码

  • 相关阅读:
    jvm基本结构和解析
    多态的意思
    java中对象的简单解读
    double类型和int类型的区别
    python 解析xml文件
    win10不能映射Ubuntu共享文件
    Qt程序打包
    Ubuntu boot分区文件误删,系统无法启动,怎么解
    ubuntu Boot空间不够问题“The volume boot has only 5.1MB disk space remaining”
    Ubuntu 分辨率更改 xrandr Failed to get size of gamma for output default
  • 原文地址:https://www.cnblogs.com/kai-/p/13073418.html
Copyright © 2011-2022 走看看