首页 > 编程语言 >分布式搜索算法,算法

分布式搜索算法,算法

时间:2023-03-22 18:05:20浏览次数:39  
标签:翻页 PageSize 搜索算法 PageNumber 算法 搜索 服务器 分布式


对于搜索引擎来说,索引存放在成千上万台机器上,如何进行分布式搜索呢?

 

假设搜索结果是以分页的方式显示,以PageNumber代表当前页,从1开始,以PageSize代表页面大小,默认为10,以N代表搜索服务器数量。最简单的分布式搜索算法为:有一台合并服务器负责接受用户的搜索请求,然后分别向N台机器获取前PageNumber*PageSize条结果,得到的结果数为N*PageNumber*PageSize,然后把这些数据重新进行排序,根据所要显示的页面PageNumber,获取从(PageNumber - 1) * PageSize + 1开始的PageSize条结果返回给用户。

 

这个算法很简单,但有一些问题:

 

问题一:每次翻页都要向每台搜索服务器搜索一遍

 

        通常情况下,用户在搜索内容时都是顺序翻页的,即从第一页往下顺序翻,这个算法没有设计缓存来减轻搜索服务器的压力。

 

问题二:越往后翻页,搜索服务器的搜索压力越大

 

N台搜索服务器分别获取1000条记录才能完成,对于每台搜索服务器的搜索压力很大。

 

问题三:越往后翻页,合并服务器的排序压力越大

 

分布式搜索集群,如果按这个算法来进行翻页,假设N为1000,查询第100页时,合并服务器得到的结果数为N*PageNumber*PageSize = 1000 * 100 * 10 = 1000000,要对这100万条结果进行排序,对合并服务器来说压力很大。对系统的可伸缩性是一种极大的破坏。

标签:翻页,PageSize,搜索算法,PageNumber,算法,搜索,服务器,分布式
From: https://blog.51cto.com/u_2650279/6143060

相关文章

  • 「ACM 算法实践」[解题报告]组队
    分析因为时间不多了,我一开始只考虑了\(a_i\)互不相等的情况,没想到居然拿到了60昏(正确解法是贪心+优先队列。而不是从「使得人数最少的队伍人数最多」中得到的二分......
  • 「ACM 算法实践」[解题报告]时间管理大师
    分析一开始想着应该要分情况讨论,如果每台电脑的耗电量都小于\(e\),那么可以知道小Q是可以一直学习下去的,如果存在电脑的耗电量大于等于\(e\),贪心的想法是将每台电脑......
  • 「ACM 算法实践」[解题报告]沙滩拾贝
    分析因为是与运算,只有当这\(m\)个数的第\(k\)位上都是\(1\)的时候才能使得最后的数的第\(k\)位为\(1\)。为了让最后的开心程度最大,我们优先将高位取\(1\),也......
  • 利用Mahout实现在Hadoop上运行K-Means算法
    class="full-post-title">利用Mahout实现在Hadoop上运行K-Means算法  一、介绍Mahout   Mahout是Apache下的开源机器学习软件包,目前实现的机器学习算法主要包含有协......
  • 高斯模糊的算法
    通常,图像处理软件会提供"模糊"(blur)滤镜,使图片产生模糊的效果。算法有很多种,其中有一种叫做"高斯模糊"(GaussianBlur)。它将正态分布(又名"高斯分布")用于图像处理。本文介......
  • 机器学习算法
    一、分类算法(一)贝叶斯 (二)决策树ID3、C4.5(C5.0)、CART、PUBLIC、SLIQ和SPRINT(三)神经网络 (四)SVM (五)KNN (六)Bagging 和Boosting (七)最大熵(八)Logistic 回归(九)感知机二、聚类......
  • 分布式网页爬虫 Ebot
    Ebot是一个用ErLang语言开发的可伸缩的分布式网页爬虫,URLs被保存在数据库中可通过RESTful的HTTP请求来查询。​​matteoredaelli​​​/​​ebot​​......
  • 精准测试之分布式调用链底层逻辑
    作者:京东工业宛煜昕概要:1.调⽤链系统概述;2.调⽤链系统的演进;3.调⽤链的底层实现逻辑;4.Span内容组成。⼀、分布式调⽤链系统概述客户打电话给客服说:“优惠券使......
  • 复杂度分析:如何分析、统计算法的执行效率和资源消耗
    作者:京东物流崔旭我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指......
  • 算法的时间复杂度和空间复杂度
    常用的算法的时间复杂度和空间复杂度 排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排......