es核心技术与实战 Day03

倒排索引

搜索引擎

  • 正排索引——文档ld到文档内容和单词的关联
  • 倒排索引——单词到文档Id的关系
倒排索引的核心组成

倒排索引包含两个部分

  • 单词词典 (Term Dictionary), 记录所有文档的单词,记录单词到倒排列表的关联关系

    • 单词词典一般比较大,可以通过B +树或哈希拉链法实现,以满足高性能的插入与查询
  • 倒排列表(Posting List) - 记录了单词对应的文档结合,由倒排索引项组成

    • 倒排索引项(Posting)
      1. 文档ID
      2. 词频TF-该单词在文档中出现的次数,用于相关性评分
      3. 位置(Position) -单词在文档中分词的位置。用于语句搜索(phrase query)
      4. 偏移(Offset) -记录单词的开始结束位置,实现高亮显示

Analyzer

GET _analyze
{
	//分词器名称
	"analyzer": "standard",
	"text": "2 running Quick brown-foxes leap over lazy dogs in the summer evening."
}

standard analyzer

  • 默认分词器
  • 按词切分
  • 小写处理
    返回结果
"2,running,quick,brown,foxes,leap,over,lazy,dogs,in,the,summer,evening"

simple analyzer

  • 按照非字母切分
  • 非字母的都被去除
  • 小写处理
    返回结果
"running,quick,brown,foxes,leap,over,lazy,dogs,in,the,summer,evening"

whitespace analyzer

  • 按空格切分
    返回结果
"2,running,Quick,brown-foxes,leap,over,lazy,dogs,in,the,summer,evening"

stop analyzer
相比Simple Analyzer
多了stop filter
会把the,a,is等修饰性词语去除
返回结果

"running,quick,brown,foxes,leap,over,lazy,dogs,summer,evening"

keyword analyzer
不分词,直接将输入当成一个term输出

pattern analyzer

  • 通过正则表达式进行分词
  • 默认是\W+,非字符的符号进行分隔
    返回结果
"2,running,quick,brown,foxes,leap,over,lazy,dogs,in,the,summer,evening"

english analyzer
返回结果

"2,runn,quick,brown,fox,leap,over,lazy,dogs,summer,even"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值