杭州哪个搜索引擎优化公司好(搜索引擎选型调研文档简介选型文档简介)
优采云 发布时间: 2021-11-05 00:19杭州哪个搜索引擎优化公司好(搜索引擎选型调研文档简介选型文档简介)
搜索引擎选择研究文档 Elasticsearch 简介*
Elasticsearch 是一个实时分布式搜索和分析引擎。它可以帮助您以前所未有的速度处理*敏*感*词*数据。
它可以用于全文搜索、结构化搜索和分析,当然你也可以将三者结合起来。
Elasticsearch 是一个基于全文搜索引擎 Apache Lucene™ 的搜索引擎。可以说Lucene是当今最先进、最高效的全功能开源搜索引擎框架。
但是Lucene只是一个框架。要充分利用其功能,需要使用JAVA,并在程序中集成Lucene。了解它是如何工作的需要大量的学习和理解,Lucene 确实非常复杂。
Elasticsearch 使用 Lucene 作为其内部引擎,但是使用它进行全文搜索时,只需要使用统一开发的 API,无需了解其背后复杂的 Lucene 运行原理。
当然,Elasticsearch 并不只是 Lucene 这么简单。它不仅包括全文搜索功能,还可以执行以下任务:
这么*敏*感*词*集成在一个服务器中,你可以通过客户端或者任何你喜欢的编程语言,轻松地与 ES 的 RESTful API 进行通信。
Elasticsearch 的入门非常简单。它自带了很多非常合理的默认值,让初学者一上手就可以避免面对复杂的理论。
它一旦安装就可以使用,并且可以以很小的学习成本变得非常高效。
随着你学习的越来越深入,你还可以利用 Elasticsearch 更高级的特性,整个引擎可以灵活配置。您可以根据自己的需要自定义自己的 Elasticsearch。
用例:
但 Elasticsearch 不仅适用于大型企业,它还帮助 DataDog 和 Klout 等许多初创公司扩展了功能。
Elasticsearch 的优点和缺点**:优点 Elasticsearch 是分布式的。不需要其他组件,分发是实时的,称为“推送复制”。Elasticsearch 完全支持 Apache Lucene 的近实时搜索。处理多租户(multitenancy)不需要特殊配置,而Solr则需要更高级的设置。Elasticsearch 使用网关的概念,可以更轻松地完成备份。每个节点形成一个点对点的网络结构,当一些节点出现故障时,会自动分配其他节点来替换它们。缺点是只有一个开发者(目前 Elasticsearch GitHub 组织不止一个,
Solr(发音为“solar”)是 Apache Lucene 项目的开源企业搜索平台。其主要功能包括全文搜索、命中标记、分面搜索、动态聚类、数据库集成、富文本(如Word、PDF)处理等。Solr 具有高度可扩展性,并提供分布式搜索和索引复制。Solr 是最受欢迎的企业搜索引擎,Solr4 还添加了 NoSQL 支持。
Solr 是一个独立的全文搜索服务器,用 Java 编写,运行在 Servlet 容器(如 Apache Tomcat 或 Jetty)中。Solr 使用 Lucene Java 搜索库作为核心全文索引和搜索,并具有类似 REST 的 HTTP/XML 和 JSON API。Solr 强大的外部配置功能使其可以调整以适应多种类型的应用程序,而无需 Java 编码。Solr 有一个插件架构来支持更高级的定制。
由于 Apache Lucene 和 Apache Solr 项目在 2010 年合并,这两个项目由同一个 Apache Software Foundation 开发团队制作和实施。说到技术或产品,Lucene/Solr 或 Solr/Lucene 都是一样的。
Solr 的优缺点 Solr 拥有一个更大、更成熟的用户、开发者和贡献者社区。支持添加HTML、PDF、Microsoft Office系列软件格式、JSON、XML、CSV等纯文本格式等多种格式的索引。Solr 相对成熟和稳定。不考虑建索引的同时搜索,速度比较快。缺点 建立索引时,搜索效率降低,实时索引搜索效率不高。Elasticsearch 和 Solr 的比较*
仅搜索现有数据时,Solr 速度更快。
在实时构建索引时,Solr 会造成io 阻塞和查询性能不佳。Elasticsearch 优势明显。
随着数据量的增加,Solr 的搜索效率会越来越低,而 Elasticsearch 并没有明显的变化。
综上所述,Solr 的架构并不适合实时搜索应用。
实际生产环境测试*
下图显示,将搜索引擎从 Solr 切换到 Elasticsearch 后,平均查询速度提高了 50 倍。
Elasticsearch 和 Solr 的比较
Solr 是传统搜索应用的强大解决方案,但 Elasticsearch 更适合新兴的实时搜索应用。
其他基于Lucene的开源搜索引擎解决方案 * 直接使用Lucene
注意:Lucene 是一个 JAVA 搜索库,它本身并不是一个完整的解决方案,需要额外的开发工作。
优势:成熟的解决方案,有很多成功案例。顶级apache项目正在持续快速推进。一个庞大而活跃的开发社区,大量的开发人员。它只是一个类库,有足够的定制和优化空间:简单定制后,可以满足大多数常见的需求;优化后可支持10亿+搜索。
缺点:需要额外的开发工作。所有的扩展、分发、可靠性等都需要自己来实现;非实时,从索引到搜索有时间延迟,目前的“近实时”(Lucene Near Real Time search)搜索方案是可扩展的 需要进一步改进
描述:基于Lucene,支持分布式、可扩展、容错、准实时的搜索解决方案。
优点:开箱即用,可以与Hadoop一起分发。具有扩展和容错机制。
缺点:只是一个搜索方案,索引部分还需要自己实现。在搜索功能中,只满足最基本的要求。成功案例较少,项目成熟度略低。因为需要支持分发,所以对于一些复杂的查询需求,定制起来会比较困难。
注意:Map/Reduce 模式是一种分布式索引解决方案,可以与 Katta 结合使用。
优点:分布式索引和可扩展性。
缺点:只构建了索引方案,不包括搜索实现。在批处理模式下工作,对实时搜索的支持不好。
描述:基于Lucene的一系列解决方案,包括准实时搜索zoie、分面搜索实现bobo、机器学习算法分解器、汇总库krati、数据库模式打包sensei等。
优点:成熟的解决方案,支持分布式、可扩展、丰富的功能实现
缺点:与linkedin连接太近,定制性差
说明:基于Lucene,索引存在于cassandra数据库中
优点:参考cassandra的优点
缺点:参考cassandra的缺点。另外,这只是一个demo,并没有经过大量的验证
注:基于Lucene,索引存储在HBase数据库中
优点:参考HBase的优点
缺点:参考HBase的缺点。另外,在实现中,lucene term是按行存储的,而每个term对应的发帖列表是按列存储的。随着单个词条的发布列表增加,查询速度会受到很大影响
转载: