Solr是什么
- 一个Apache开源项目
- 基于lucene的全文搜索应用服务器
- 企业级
- 使用Java开发
- 可独立运行在Servlet容器
lucene是什么
- Apache开源项目
- 全文检索引擎工具包
- 是一个全文检索引擎的架构
- 根据关键字来搜索的文本搜索工具
Solr和lucene的区别和联系
区别: Lucene是一个jar包,不能独立运行,对外提供服务。
联系: solr是基于lucene开发的,同时提供了更丰富的查询语言,实现了可配置,可扩展,并对查询性能进行了优化,提供了完善的管理界面。
市面上比较优秀的开源搜索引擎都有哪些
http://www.sphinxsearch.org/archives/492
在当前搜索引擎中可以获得的功能中,最受欢迎的是:
- 全文搜索(通过简单的单词和短语或单词或短语的多种形式)
- 多字段搜索
- 高亮显示(在搜索框中输入的单词的高亮)
- 按同义词搜索
- 自动填充建议
- 多值属性搜索(原文:faceted search,译者改成多值属性或许会更准确)(属性计数。例如,电子商务网站使用构面告诉客户特定型号,大小,颜色和其他属性的项目数量)
- 模糊搜索(错别字,拼写错误)
- 拼写更正
- 地理空间搜索(根据其纬度和经度搜索对象位置) 【GEO search】
Lucene系搜索引擎,Java开发,包括:
- Lucene
- Solr
- Elasticsearch
- Katta、Compass等都是基于Lucene封装
Sphinx搜索引擎,C++开发,简单高性能
各个搜索引擎优势、劣势
ElasticSearch优势
Elasticsearch是2018年搜索引擎评级的绝对领导者,通过能够在任何环境中工作,证明了其真正“有弹性”的名称
-
近实时索引
Elasticsearch能够几乎立即(在不到1秒内)快速索引快速变化的数据。在数据库不断更新的项目中使用它是合适的 -
高可扩展性
当数据库增长时,查找起来就变得更加困难。但是当您的数据库变大时,Elasticsearch会扩展,因此搜索速度不会降低。 -
储存
ES不仅可以用作索引器,还可以用作数据存储器。尽管如此,我们不建议将其用作主存储,并且我们仍然将数据保存在主数据库中以获得更好的安全性和可靠性,仅使用ES来索引数据和存储日志。 -
数据可视化
这是今天在ES中完美实现的时尚功能之一。Elastic Stack(ES,Logstash和Kibana插件的组合)是分析的绝佳工具。它允许实时监控应用程序上的流量(访问者总数,唯一访问者数量,IP地址,最常见的查询,大多数请求的页面,使用的设备和浏览器,按时间显示的流量日志等等)。 -
安全分析
Elastic Stack也是一款出色的安全分析工具。近实时日志分析和可视化使您可以识别安全威胁(Web服务器出现问题,链接断开,未经授权访问的尝试,攻击位置等)。 -
机器学习
Elasticsearch可以受益于X-Pack商业插件提供的机器学习功能。机器学习算法专注于时间序列数据中的异常检测和异常检测。 -
AMAZON ELASTICSEARCH SERVICE
Amazon Elasticsearch Service可以快速轻松地进行设置,并在云中运行和扩展Elasticsearch,而无需配置您自己的服务器。
ElasticSearch劣势
虽然Elastic目前排名第一,但它仍然是一项年轻的技术。并非所有想要的功能都是开箱即用的,许多功能需要通过自行扩展。例如,ES没有“您是不是意味着什么?”功能。
Solr优势
-
多值属性搜索
Solr拥有非常棒的搜索功能,这使得该解决方案非常适合像Zappos这样的电子商务网站,这些网站使用Solr搜索和导航150,000种鞋子和其他产品。 -
丰富的功能集
Solr可以开箱即用,具有高度可配置性(甚至超过Elasticsearch)的丰富的全文搜索功能。Solr支持各种建议器实现,突出显示功能(在字段中输入的单词的可视指示)和拼写检查器/“你的意思是什么?”(在ES中不存在)。 -
丰富的内容文档
Solr是少数可以阅读丰富内容文档的搜索引擎之一,包括PDF,Word,XML或纯文本。
这非常适合需要查看网站内大量PDF或Word文件的项目(包括合同,简历,学习材料,电子书等)。 -
数据可视化
香蕉是一种可视化工具( Kibana的一个分支)适用于Solr,允许管理员动态监控仪表板中的事件和日志。 -
机器学习
索尔与合作 彭博,实施机器学习((Learning-to-Rank plug-in) 根据来自更复杂查询的分数,使用文档重新排名的概念。机器学习旨在为用户提供即时搜索最相关公司,人员和新闻的更好体验。
Solr劣势
Solr不如Elasticsearch快,并且最适合静态数据(不需要频繁更改)。原因是缓存。在Solr中,缓存是全局的,这意味着,即使缓存中发生了最微小的变化,所有索引都需要刷新。这通常是一个耗时的过程。另一方面,在弹性中,刷新是由段组成的。
Sphinx
Sphinx优势
-
强大而快速
Sphinx近年来不断发展,已经能够提供近乎实时的搜索。它的速度包括超过500个查询/秒对1,000,000个文档,最大的索引编号估计为250亿个文档。 -
多值属性搜索
Sphinx在分面搜索功能方面拥有丰富的经验。
Sphinx劣势
Sphinx适用于结构化数据(预定义文本字段和非文本属性),但它不是处理非结构化数据(DOC,PDF,MP3等)的项目的最佳选择,因为它需要开发人员花费大量时间和努力配置。这与配置上的其他困难一起使得Sphinx的使用不如竞争对手。
网友评论