文档章节

elasticsearch的打分策略

arthur666
 arthur666
发布于 2017/07/21 20:10
字数 597
阅读 110
收藏 1

es的搜索结果,每一个结果上面都会有一个“_score”字段,就是搜出来这个结果所占的分值。

这个就涉及到搜索结果的排序问题。当然我们想要相关度越大结果越靠前。

es评分策略设计到两点

   1:内容相关度

    比如淘宝搜索 “小米电视机“,淘宝的搜索会先把条件分词 分为 “小米”“电视”“电视机”(也看可能更细粒度),然后去自己的仓库查找符合条件的产品,当然我们看到的最靠前的就是小米电视机 32寸,曲面 4k 一些相关的电视机,但是你跳转到第五页或者更靠后,你会发现产品 并不是小米电视机,有一些 小米配件,小米遥控板,或者海信电视机,索尼电视剧一类的产品。 这种现象就是说搜索会根据入参的分词去搜索数据库的数据,当字段的值匹配度越高,这个结果的评分就越高,就越靠前。(声明:笔者并不知道淘宝的搜索引擎是什么,只是用这种现象解释一下)

2:映射结构字段的权重值

    

我自己type的一个字段叫做zuName 类型:文本类型,分词器是用的ik的分词器,权重值为5

现在假如有两个字段 :zuName 权重为5 ;zuDetail 权重为3

这样如果多字段搜索的话,两个字段的匹配度一致的话,但是zuName返回的评分更高一点,因为开始设置的权重更高。我现在的用途就是,多type查询的时候,相同字段会设置不同的权重,这样两个type的数据可以区分出来了。

es也支持自定义打分策略,笔者有成熟的自定义打分策略方案会持续更新出来。

我是使用java操作es的,大家可以在扣扣群互相交流

周末愉快,明天不来加班算我输!

 

 

==============================我是分割线===========================

如果本文写的文章对你有帮助,请你用支付宝扫描一下该红包,享受下阿里红利,我们都有红包,来勉励我写更多的文章。谢谢!

 

© 著作权归作者所有

共有 人打赏支持
arthur666
粉丝 18
博文 23
码字总数 11352
作品 0
杨浦
技术主管
私信 提问
加载中

评论(1)

arthur666
arthur666
持续更新关于es5.4 版本的特性,下次会更新关于es聚合的东西
Scrapy分布式爬虫打造搜索引擎-(八)elasticsearch结合django搭建搜索引擎

Python分布式爬虫打造搜索引擎 基于Scrapy、Redis、elasticsearch和django打造一个完整的搜索引擎网站 推荐前往我的个人博客进行阅读:http://blog.mtianyan.cn/ 目录分章效果更佳哦 分章查看...

天涯明月笙
2017/07/01
0
0
Elastic 在年度用户大会 Elastic{ON} 2018 上发布众多新功能和技术预览

下载超过 2.25 亿次,Elastic 公开 X-Pack 源代码 旧金山 (Elastic{ON} 2018) – 2018 年 2 月 27 日 – Elastic,Elasticsearch 和 Elastic Stack背后的公司,今天宣布其产品累计下载次数达...

Medcl
03/01
0
0
elasticsearch权威指南学习笔记一

elasticsearch是什么? elasticsearch是一个基于apache lucene,实时分布式搜索和分析引擎。也是用java开发的,通过使用Restful api来封装lucene的底层实现,使得交互变得简单。和一般的数据...

domi爹
07/31
0
0
elasticsearch 作为中文本相关度排序和电商的排序(综合,价格,新品等)有什么区别?

最近在做电商类型的网站,开始的时候,使用mysql like做搜索,后来提出需要进行分词等,就采用了elasticsearch作为搜索引擎。 随后,需求方又提出需要做各种排序,比如说:价格,新品,综合。...

暗火世界
2017/01/17
470
1
ElasticSearch的ik分词插件开发

ik插件,说白了,就是通过封装ik分词器,与ElasticSearch对接,让ElasticSearch能够驱动该分词器。那么,具体怎么与ElasticSearch对接呢?从下往上走,总共3步: 一、封装IK分析器 与Elastic...

萧十一郎君
2014/05/26
0
1

没有更多内容

加载失败,请刷新页面

加载更多

如何在10分钟内设置EOS钱包和帐户?

由于SuperNode超级节点社区建立在EOS之上,我们希望引导我们的社区成员设置EOS钱包和帐户,以便充分参与我们的生态系统。 虽然设置过程可能不如其他区块链系统那么简单,但不要担心。本指南旨...

笔阁
5分钟前
0
0
8.04-Win10非U盘重装系统

注意:最好准备一个你所需版本的秘钥(不能是数字0开头的) 【所需:Win10的ISO镜像、能够解压ISO格式的解压缩工具、最好准备你所需版本的秘钥(不能是数字0开头的)】 1、创建新的文件系统为...

静以修身2025
6分钟前
0
0
Docker的架构与自制镜像的发布

一. docker 是什么 大家都知道虚拟机吧,windows 上装个 linux 虚拟机是大部分程序员的常用方案。公司生产环境大多也是虚拟机,虚拟机将物理硬件资源虚拟化,按需分配和使用,虚拟机使用起来...

程序猿拿Q
22分钟前
4
0
ubuntu下pycharm调用Hanlp实践分享

前几天看了大快的举办的大数据论坛峰会的现场直播,惊喜的是hanlp2.0版本发布。Hanlp2.0版本将会支持任意多的语种,感觉还是挺好的!不过更多关于hanlp2.0的信息,可能还需要过一段时间才能看...

左手的倒影
31分钟前
2
0
Python监控服务器实现邮件微信报警[未测试]

本文中笔者暂时实现的只有cpu和内存的监控,python可以监控许多的主机信息,网络,硬盘,机器状态等,以下是代码的实现,代码可以实现windows和linux的监控。 实验环境:Ubuntu16.04和windo...

dragon_tech
36分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部