`
muxiaolin
  • 浏览: 30846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

高效搜索

 
阅读更多

实时搜索,最重要的就是效率,实时就意味着你只要有更新就要reopen,大量的reopen的效率是很低的,导致搜索变慢。

 

索引结构 fs+ramX2

 

更新最大问题就是delete操作,因为delete操作可能是磁盘的,要reopen这个大家伙需要时间会很长,所以要是用filterindexreader,过滤点删除的diocid,这要就不用reopen磁盘索引。

 

 

上面的步骤能让你在实时的情况下,不reopen,速度会快上很多。

 

其他思路可以看看zoie。

 

另外一个问题就是当数据量很大的时候, 1千万<数据量<1亿,这时候,lucene的速度下降的很厉害,问题在于查找正向文件。所以lucene+nosql的数据库就很有必要,使lucene仅负责搜索。同时nosql的数据库支持分布式,这样能吞吐的数据就更多。

 

 

如果数据是实时的,那么缓存的策略就很难做,数据经常变,缓存就成为实时的障碍了,但是是用uid映射后,就能用

 

利用映射关系作为key,使缓存即能保证性能,有不影响实时。

 

目前测试了2000w数据,再多mongodb性能就下降的厉害了,没有好的测试机啊。

 

前面的博客写了,lucene4.0要出自己的filterindexreader了,到时候,可能实现起实时的搜索。会更轻松一点。

 

 

 

 

 

搜索,我觉得有几个阶段,和几个比较优挑战的事情

 

1、控制精度和召回率,实效性和高并发(初级)

--通过分词和构建query来控制,实效和高并发,已方面通过程序,另一方面又换运行环境。

 

 

2、数据完整性,不管任何情况,保证一条数据都不丢失

--工作中经常有需要停止搜索服务的时候,这时候更新的一些数据就丢失了(更新以http形式),数据抓取端是不管

     搜索服务是否正常工作的,所以单独做了一台增量的服务器,做了个短线续传的功能。

 

 

3、分布式、大规模数据搜索,1亿条以上的长字段全文检索。

--lucene分布式一直是个头疼的问题,hadoop结合lucene还没有比较成熟的(nutch除外),apache推荐katta,

     但是可定制性又不好,是不是该叛变到sphinx下。自己写一个,估计相当的耗时。

 

 

4、数据挖掘。智能搜索

--以前一直在用搜索的角度解决数据挖掘应该做的事,现在看来走了些弯路。这段时间主要看看数据挖掘,再提升提升

     搜索质量。搜索质量到最后,拼得就数数据挖掘了

 

 

 

 

 

 

 

 

 

分享到:
评论
1 楼 sweethcz 2012-03-22  
如何在lucene里进行精度控制呢?比如:

字符串相近度如果没有到80%,就算没找着。
如:
1、字符串数据库中有以下字符串:
1234545ab  yuji  908loi
2、给定字符串为:abc
结果:无

怎么定义相近度80%,即:怎么就算相近度是80%

相关推荐

    网盘高效搜索工具.zip

    《网盘高效搜索工具——熊猫》 在当今的数字化时代,信息存储与分享变得尤为重要,网盘成为了我们存储大量文件的首选平台。然而,面对海量的文件,如何快速找到我们需要的内容呢?这时,一款名为“熊猫”的网盘高效...

    windows资源高效搜索工具

    针对这种情况,"windows资源高效搜索工具"应运而生,它提供了一种更快速、更精准的文件查找解决方案。 标题中提到的"windows资源高效搜索工具"通常是指第三方软件,如"Everything",这也是压缩包中的文件名称。...

    QQ号码搜索王QQ号码搜索王

    QQ号码搜索王是一款专门针对QQ...总的来说,QQ号码搜索王是一款强大的QQ号码收集工具,通过其高效搜索和定制化筛选功能,为用户提供了便捷的数据获取途径。正确使用和理解这款软件,将有助于提升相关工作的效率和效果。

    Aho-Corasick字符串高效搜索算法

    Aho-Corasick字符串高效搜索算法是一种在文本中查找多个模式串(字符串模式)的算法,由艾兹格·A·霍夫曼和门德尔松·科拉斯克于1975年提出。这个算法主要应用于信息检索、生物信息学等领域,其中需要快速查找大量...

    linux-McFlyBash历史命令高效搜索重用工具

    总之,"Linux-McFlyBash历史命令高效搜索重用工具"是一个强大的Bash扩展,它通过智能化的命令搜索和自动完成功能,帮助用户在Linux命令行环境中更加高效地工作。不论你是初级用户还是经验丰富的开发者,McFlyBash都...

    swift-StyledTextKit可定制高效搜索并渲染高亮文本域

    Swift-StyledTextKit是一款强大的文本处理库,专为在Swift应用中实现可定制、高效搜索以及高亮渲染文本域而设计。它提供了丰富的功能,帮助开发者轻松地处理复杂的文本显示和交互需求,尤其是在需要高性能文本搜索和...

    如何高效搜索网络信息.ppt

    如何高效搜索网络信息.ppt

    36-25高效搜索神器.avi

    36-25高效搜索神器,视频教程

    Java版H264高效搜索起始码方法

    Java版H264高效搜索起始码方法,可以快速找出H264码流中的起始码,代码改编来源是FFmpeg开源项目

    Go-riot是一个Go语言开发的开源分布式简单高效搜索引擎

    Go-riot是一个基于Go语言构建的开源分布式搜索引擎,它的设计目标是实现简单高效,这使得它在处理大规模数据检索时具备高性能和可扩展性。在深入探讨Go-riot之前,我们先来了解一下Go语言和分布式系统的基础知识。 ...

    算法文档无代码浅谈部分搜索+高效算法在搜索问题中的应用

    虽然算法文档可能没有代码实现部分,但理解高效搜索算法的工作原理对于设计和选择合适的算法实现是非常关键的。例如,在设计搜索引擎时,需要考虑到如何根据用户输入的查询词进行快速匹配,并且准确地返回搜索结果。...

    Elasticsearch实战:构建高效搜索系统的秘诀.zip

    elasticsearch通过本文的介绍,你应该对Elasticsearch有了深入的了解,并能够开始尝试在你的项目中应用Elasticsearch。不断学习、实践和优化,你将能够构建出高效的搜索系统。

    论文研究-DFlooding:非结构化P2P网络中高效搜索策略.pdf

    为了能够在保持高覆盖范围的...分析和实验结果表明,DFlooding能够提供较低负载的查询,高效地应用于P2P搜索。与标准洪泛机制相比,在跳数不变的情况下,冗余消息的数量可减少84.5%以上,而消息的覆盖范围基本不变。

    分布式信息系统的高效不变搜索.pdf

    本篇文章主要讨论了在分布式信息系统中实现高效搜索的方法,其核心在于不变量的搜索和管理,具体涉及的要点包括不变量概念的提出、基于剪枝技术的搜索算法和聚类算法的应用。 不变量通常指在系统执行过程中保持不变...

    C++ IP纯真数据库 高效搜索类 linux/unix

    IP纯真数据库的查找类,快速定位IP对应的国家地区名和运营商名。50万级别的数据只需要几秒时间。 纯真ip库的网址: http://www.cz88.net/

    超级搜索工具

    "超级搜索工具"是一款专为Windows操作系统设计的高效搜索引擎,旨在提供比系统默认搜索功能更快、更精确的文件查找体验。这款工具通过快速建立索引,使得用户在海量的文件和资料中能迅速定位到所需内容,极大地提升...

    绿色-windows文件搜索软件1.9M(代替搜索助理)

    5. 高效资源管理:在提供高效搜索的同时,确保对系统资源的占用尽可能小,避免影响其他应用程序的正常运行。 从压缩包子文件的文件名称列表“复件 File Seeker”来看,"File Seeker"可能是这款软件的正式名称,它...

Global site tag (gtag.js) - Google Analytics