10.多shard场景下relevence score可能不准确
主要知识点
- 多shard场景下relevence score可能不准确的原因
- 多shard场景下relevence score可能不准确解决方式
一、多shard场景下relevance score不准确的原因
如果你个index有多个shard的话,可能搜索结果的排序会不准确。主要原因是TF/IDF的算法,es在计算IDF值时,默认只会计算当前shard的IDF值,而不会把整个index作为基数来计算,这样做的目的当前是为了性能,这也是多shard场景下relevance score不准确的原因。
二、多shard场景下relevence score可能不准确解决方式
1、生产环境下,数据量大,es会尽可能实现均匀分配。在生产环境中,一般数据量都是很大,在大数据量的概率学背景下,es都是在多个shard中均匀路由数据的,路由的时候根据_id实现负载均衡,此时各个shard中的个数基本一致。因此IDF值也基本一致。
2、在测试环境下,可以在建立索引时将primary shard设置为1个(number_of_shards=1),如果说只有一个shard,那么当然所有的document都在这个shard里面,就没有这个问题了。
3、测试环境下,搜索附带search_type=dfs_query_then_fetch参数,此时在计算一个doc的相关度分数的时候,就会将所有shard中的doc来做为IDF的基数,这样做能确保准确性。但是在生产环境下,不推荐设置这个参数,因为性能很差。
10.多shard场景下relevence score可能不准确的更多相关文章
- 亿级流量场景下,大型架构设计实现【2】---storm篇
承接之前的博:亿级流量场景下,大型缓存架构设计实现 续写本博客: ****************** start: 接下来,我们是要讲解商品详情页缓存架构,缓存预热和解决方案,缓存预热可能导致整个系 ...
- 难道主键除了自增就是GUID?支持k8s等分布式场景下的id生成器了解下
背景 主键(Primary Key),用于唯一标识表中的每一条数据.所以,一个合格的主键的最基本要求应该是唯一性. 那怎么保证唯一呢?相信绝大部分开发者在刚入行的时候选择的都是数据库的自增id,因为这 ...
- CephRGW 在多个RGW负载均衡场景下,RGW 大文件并发分片上传功能验证
http://docs.ceph.com/docs/master/radosgw/s3/objectops/#initiate-multi-part-upload 根据分片上传的API描述,因为对同一 ...
- Entity Framework:如果允许模型处于非法状态,在某些场景下,记得清空DbContext
Entity Framework:如果允许模型处于非法状态,在某些场景下,记得清空DbContext 背景 之前写过两篇文章介绍模型的合法性: DDD:关于模型的合法性,Entity.IsValid( ...
- CI Weekly #11 | 微服务场景下的自动化测试与持续部署
又一周过去了,最近我们的工程师正在搞一个"大事情" --「[flow.ci](http://flow.ci/?utm_source=bokeyuan&utm_medium= ...
- 【转】MySQL乐观锁在分布式场景下的实践
背景 在电商购物的场景下,当我们点击购物时,后端服务就会对相应的商品进行减库存操作.在单实例部署的情况,我们可以简单地使用JVM提供的锁机制对减库存操作进行加锁,防止多个用户同时点击购买后导致的库存不 ...
- 亿级流量场景下,大型架构设计实现【全文检索高级搜索---ElasticSearch篇】-- 中
1.Elasticsearch的基础分布式架构: 1.Elasticsearch对复杂分布式机制的透明隐藏特性2.Elasticsearch的垂直扩容与水平扩容3.增减或减少节点时的数据rebalan ...
- 亿级流量场景下,大型缓存架构设计实现【1】---redis篇
*****************开篇介绍**************** -------------------------------------------------------------- ...
- HBase指定大量列集合的场景下并发拉取数据时卡住的问题排查
最近遇到一例,HBase 指定大量列集合的场景下,并发拉取数据,应用卡住不响应的情形.记录一下. 问题背景 退款导出中,为了获取商品规格编码,需要从 HBase 表 T 里拉取对应的数据. T 对商品 ...
随机推荐
- struts2 全局拦截器,显示请求方法和參数
后台系统中应该须要一个功能那就是将每一个请求的url地址和请求的參数log出来,方便系统调试和bug追踪,使用struts2时能够使用struts2的全局拦截器实现此功能: import java.u ...
- new Modifier (C# Reference)
https://msdn.microsoft.com/en-us/library/435f1dw2.aspx When used as a declaration modifier, the new ...
- openstack instance resize Resize error: Unable to resize disk down
- P3187 [HNOI2007]最小矩形覆盖
传送门 首先这个矩形的一条边肯定在凸包上.那么可以求出凸包然后枚举边,用类似旋转卡壳的方法求出另外三条边的位置,也就是求出以它为底最上面最右边最左边的点的位置.离它最远的点可以用叉积求,最左最右的可以 ...
- [Swift通天遁地]四、网络和线程-(4)使用Alamofire实现网络请求
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- redis取经之路
redis基本数据结构 Redis使用的是自己构建的简单动态字符串(SDS)[simple dynamic string,SDS]的抽象类型,并将SDS用做Rdis的默认字符串表示 redis> ...
- maven+ssm+oracle实现简单的增删改查
首先看一下项目结构 第一步先导入jar包 pom.xml <properties> <spring.version>4.3.18.RELEASE</spring.vers ...
- vue打包问题:Tip: built files are meant to be served over an HTTP server.
npm run build之后,出现提示:Tip: built files are meant to be served over an HTTP server. Opening index.html ...
- Vue电商SKU组合算法问题
前段时间,公司要做“添加商品”业务模块,这也算是电商业务里面的一个难点了. 令我印象最深的不是什么“组合商品”.“关联商品”.“关联单品”,而是商品SKU的组合问题. 这个问题特别有意思,当时虽然大体 ...
- AJAX json集合传入Controller后台
HTML代码 <html> <head> <meta http-equiv="Content-Type" content="text/htm ...