杭州哪个搜索引擎优化公司好(搜索引擎选型调研文档简介选型文档简介)

优采云 发布时间: 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对应的发帖列表是按列存储的。随着单个词条的发布列表增加,查询速度会受到很大影响

  转载:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线