【Elasticsearch】ES搜索框架--基本原理

一、基本原理

1.工作原理

Elasticsearch的工作方式是将数据存储为文档(document)的形式,在检索时通过对文档的搜索,将结果以相关性排序后返回给用户。在Elasticsearch中,文档以文档类型(type)为单位,一个索引(index)可以包含多个类型。

2.查询方式

Elasticsearch中的查询主要有两种:查询(query)和过滤(filter)。查询是指按照关键词进行搜索,并按照相关性进行排序,过滤是指根据某些条件进行过滤,并不进行排序。这两种查询可以组合在一起使用,从而达到更复杂的查询目的。

3.查询评分方式

在Elasticsearch中,查询的评分规则主要基于两个因素:文档中的关键词出现的频率和位置。文档中出现次数越多、出现位置越靠前的关键词,其相关性就越高,评分也就越高。评分的计算方式是基于TF-IDF算法,即词频-逆文档频率算法。

在Elasticsearch的评分规则中,评分(score)计算是基于查询的相关性得分。相关性得分(relevance score)取决于查询的内容、文档的内容和文档的评分规则。具体的评分规则包括以下三个因素:

(1)词频因素:如果查询中的某个术语在文档中出现多次,则该文档的得分将比其他文档更高。

(2)逆文档频率因素:如果查询中的某个术语在整个索引中出现较少,则该文档的得分将更高。

(3)字段长度因素:如果查询中的术语在文档的一个短字段中出现,则该文档的得分将比出现在长字段中的文档更高。

4.自定义评分规则

在Elasticsearch中,用户可以自定义查询评分规则,来实现更细致、个性化的搜索结果。用户可以通过以下几种方式来实现自定义评分规则:

(1)直接在查询语句中指定评分规则:用户可以在查询语句中指定评分规则的具体细节,比如权重(weight)、模糊度等等。

(2)自定义评分插件:用户可以自己编写评分插件,根据自己的需要为每个文档指定一个特定的评分值。

(3)使用Function Score Query:Function Score Query是Elasticsearch提供的一个查询类型,它允许用户通过指定一系列计算函数来自定义评分规则。例如,可以将出版日期越近的与作者名单匹配的文章评分更高。

Elasticsearch是一种功能强大的全文本搜索引擎,具有高度可定制性和可伸缩性。了解Elasticsearch的查询评分规则和自定义评分规则可以提高搜索结果的质量。同时,通过硬件升级、分片和副本、预热缓存和定时清理来提高检索速度,可以使Elasticsearch在大数据搜索和分析中,发挥出更卓越的性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值