打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
搜索服务器

背景

现在的客户对搜索的要求越来越高,为了适应不同的项目。我们希望可以我们的全文检索做成中间件的形式开放出去出去,给不同的Team使用。在这样的想法下,我们设计了搜索服务器中间件的第一个版本。

工具

开源的全文检索工具有:

Solr:Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提 供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

Sphinx:Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。Sphinx 单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。

HubbleDotNet:HubbleDotNet 是一个基于.net framework 的开源免费的全文搜索引擎组件。开源协议是 Apache 2.0。HubbleDotNet提供了基于SQL的全文检索接口,使用者只需会操作SQL,就可以很快学会使用HubbleDotNet进行全文检索。HubbleDotNet可以实现全文索引和查询、多域检索和排序、分组统计、消重、分类、聚类、多表关联查询等等一系列全文检索和数据挖掘功能。 HubbleDotNet提供开放的数据库适配器接口,可以和各种数据库完美整合,为各种数据库系统附加全文检索和数据挖掘功能。 HubbleDotNet设计了较为完善的并发控制程序,数据的增删改查可以多线程同时并发进行,没有任何冲突。HubbleDotNet还进行了缓存和 内存管理设计,可以帮助用户最大限度的提高查询的效率。

Lucene:这个估计大家都知道,就不介绍

系统架构

我们其实完成的功能跟Solr类似,就是基于Lucene完成搜索服务器(中间件)。

为什么我们不用solr.因为我们team是基础C#的,所以我们用C#自己去写,我们更容易控制。我们要根据我们业务需要更灵活。性能上,由于 Solr 的建索引和搜索是同一个进程,耦合度比较高,对于性能调优有一定的影响。

这个是我们设计中间的件的结构图

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
开发者都应该知道的开源搜索引擎
13 款开源的全文检索引擎
什么是Lucene和Solr和Elasticsearch,它们的区别是什么?
Coreseek开源中文检索引擎 - Sphinx - 论坛搜索、信息检索、文献检索、站内...
基于spark SQL之上的检索与排序对比性能测试
《周易》阅读和全文检索
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服