怎么做免费推广网站,做网站第一部,百度app安装下载免费,制作充值网站开源搜索引擎分类 1.Lucene系搜索引擎#xff0c;java开发,包括#xff1a; Lucene Solr Elasticsearch Katta、Compass等都是基于Lucene封装。 你可以想象Lucene系有多强大。 2.Sphinx搜素引擎#xff0c;c开发,简单高性能。 以下重点介绍最常用的开源搜素引擎#… 开源搜索引擎分类 1.Lucene系搜索引擎java开发,包括 Lucene Solr Elasticsearch Katta、Compass等都是基于Lucene封装。 你可以想象Lucene系有多强大。 2.Sphinx搜素引擎c开发,简单高性能。 以下重点介绍最常用的开源搜素引擎Lucene、Solr、Elasticsearch、Sphinx的特点和优劣势选型比较。 Lucene 1.Lucene简介 Lucene的开发语言是Java也是Java家族中最为出名的一个开源搜索引擎在Java世界中已经是标准的全文检索程序它提供了完整的查询引擎和索引引擎没有中文分词引擎需要自己去实现因此用Lucene去做一个搜素引擎需要自己去架构另外它不支持实时搜索。但是solr和elasticsearch都是基于Lucene封装。 2.Lucene的优劣势 优点 成熟的解决方案有很多的成功案例。apache 顶级项目正在持续快速的进步。庞大而活跃的开发社区大量的开发人员。它只是一个类库有足够的定制和优化空间经过简单定制就可以满足绝大部分常见的需求经过优化可以支持 10亿 量级的搜索。 缺点 需要额外的开发工作。所有的扩展分布式可靠性等都需要自己实现非实时从建索引到可以搜索中间有一个时间延迟而当前的“近实时”Lucene Near Real Time search搜索方案的可扩展性有待进一步完善 Apache Solr 1.Slor简介 Solr是一个高性能采用Java开发基于Lucene的全文搜索服务器。 文档通过Http利用XML加到一个搜索集合中。 查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括高效、灵活的缓存功能垂直搜索功能高亮显示搜索结果通过索引复制来提高可用性提 供一套强大Data Schema来定义字段类型和设置文本分析提供基于Web的管理界面等。 2.Solr的优缺点 优点 Solr有一个更大、更成熟的用户、开发和贡献者社区。 支持添加多种格式的索引如HTML、PDF、微软 Office 系列软件格式以及 JSON、XML、CSV 等纯文本格式。 Solr比较成熟、稳定。 不考虑建索引的同时进行搜索速度更快。 缺点 建立索引时搜索效率下降实时索引搜索效率不高。 Elastic Search 1.ElasticSearch简介 ElasticSearch是一个基于Lucene构建的开源分布式RESTful搜索引擎。设计用于云计算中能够达到实时搜索稳定可靠快速安装使用方便。支持通过HTTP使用JSON进行数据索引。 2.Elasticsearch的优缺点 优点 Elasticsearch是分布式的。不需要其他组件分发是实时的被叫做”Push replication”。 Elasticsearch 完全支持 Apache Lucene 的接近实时的搜索。 处理多租户multitenancy不需要特殊配置而Solr则需要更多的高级设置。 Elasticsearch 采用 Gateway 的概念使得完备份更加简单。 各节点组成对等的网络结构某些节点出现故障时会自动分配其他节点代替其进行工作。 缺点 还不够自动不适合当前新的Index Warmup API Elasticsearch 与 Solr 的比较总结 二者安装都很简单 Solr 利用 Zookeeper 进行分布式管理而 Elasticsearch 自身带有分布式协调管理功能; Solr 支持更多格式的数据而 Elasticsearch 仅支持json文件格式 Solr 官方提供的功能更多而 Elasticsearch 本身更注重于核心功能高级功能多有第三方插件提供 Solr 在传统的搜索应用中表现好于 Elasticsearch但在处理实时搜索应用时效率明显低于 Elasticsearch。 总之Solr 是传统搜索应用的有力解决方案但 Elasticsearch 更适用于新兴的实时搜索应用。 Sphinx 1.Sphinx简介 Sphinx一个基于SQL的全文检索引擎特别为一些脚本语言PHP,PythonPerlRuby设计搜索API接口。 Sphinx是一个用C语言写的开源搜索引擎也是现在比较主流的搜索引擎之一在建立索引的事件方面比Lucene快50%但是索引文件比Lucene要大一倍因此Sphinx在索引的建立方面是空间换取事件的策略在检索速度上和lucene相差不大但检索精准度方面Lucene要优于Sphinx另外在加入中文分词引擎难度方面Lucene要优于Sphinx.其中Sphinx支持实时搜索使用起来比较简单方便. Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQL和PostgreSQL 数据库数据源的支持也支持从标准输入读取特定格式 的XML数据。通过修改源代码用户可以自行增加新的数据源例如其他类型的DBMS 的原生支持 2.Sphinx的特点 高速的建立索引在当代CPU上峰值性能可达到10 MB/秒; 高性能的搜索在2 – 4GB 的文本数据上平均每次检索响应时间小于0.1秒; 可处理海量数据目前已知可以处理超过100 GB的文本数据, 在单一CPU的系统上可 处理100 M 文档; 提供了优秀的相关度算法基于短语相似度和统计BM25的复合Ranking方法; 支持分布式搜索; 支持短语搜索 提供文档摘要生成 可作为MySQL的存储引擎提供搜索服务; 支持布尔、短语、词语相似度等多种检索模式; 文档支持多个全文检索字段最大不超过32个; 文档支持多个额外的属性信息例如分组信息时间戳等; 支持断词; 你可能也喜欢: 2019 最新蚂蚁花呗Java三面题目红黑树并发容器CASSolr分布式等 阿里P8架构师谈Quartz调度框架详解、运用场景、与集群部署实践阿里P8架构师谈分布式锁的3种实现数据库、缓存、Zookeeper)阿里P8架构师谈Zookeeper的原理和架构设计以及应用场景阿里P8架构师谈NoSQL和SQL的区别NoSQL的使用场景和选型比较 阿里P8架构师谈从单体架构、到SOA、再到微服务的架构设计详解