es-基于词项和基与全文的搜索

1、基于 Term 的查询

  Term 的重要性

● Term 是表达语意的最⼩单位。搜索和利⽤统计语⾔模型进⾏⾃然语⾔处理都需要处理 Term

● 特点

● Term Level Query: Term Query / Range Query / Exists Query / Prefix Query /Wildcard Query 

● 在 ES 中,Term 查询,对输⼊不做分词。会将输⼊作为⼀个整体,在倒排索引中查找准确的词项,并

且使⽤相关度算分公式为每个包含该词项的⽂档进⾏相关度算分 – 例如“Apple Store” 

● 可以通过 Constant Score 将查询转换成⼀个 Filtering,避免算分,并利⽤缓存,提⾼性能

 

多字段 Mapping 和 Term查询

2、复合查询 – Constant Score 转为 Filter

  • 将 Query 转成 Filter,忽略 TF-IDF 计算,避免相关性算分的开销
  •  Filter 可以有效利⽤缓存

3、基于全⽂的查询

基于全⽂本的查找

                    ● Match Query / Match Phrase Query / Query String Query

● 特点

                     ● 索引和搜索时都会进⾏分词,查询字符串先传递到⼀个合适的分词器,然后⽣成⼀个供查询的词项列表

                    ● 查询时候,先会对输⼊的查询进⾏分词,然后每个词项逐个进⾏底层的查询,最终将结果进⾏合

                        并。并为每个⽂档⽣成⼀个算分。- 例如查 “Matrix reloaded”,会查到包括 Matrix 或者 reload

                      的所有结果。

Operator

Minimum_should_match

Match Phrase Query

Match Query 查询过程

 

 

● 基于词项的查找 vs 基于全⽂的查找

● 通过字段 Mapping 控制字段的分词

          ● “Text” vs “Keyword” 

● 通过参数控制查询的 Precision & Recall

● 复合查询 – Constant Score 查询

              ● 即便是对 Keyword 进⾏ Term 查询,同样会进⾏算分

             ● 可以将查询转为 Filtering,取消相关性算分的环节,以提升性能

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值