Apache Solr是Apache Software Foundation提供的基于开源REST-API的企业实时搜索和分析引擎服务器。 它的核心搜索功能是使用Apache Lucene Framework构建的,并添加了一些额外的有用功能。 它是用Java语言编写的。
SOLR代表使用复制来搜索Lucene。 它的主要功能是索引编制和伺服。 像ElasticSearch一样,它也是基于文档的NoSQL数据存储。
注意
它的官方网站: http : //lucene.apache.org/solr/ 。 Solr的最新版本是6.4.2,已于2017年3月7日发布。
Apache Solr功能:-
- 开源
- 支持全文搜索和多面导航功能
- 热门精选
- 相关结果
- 使用Apache Lucene反向索引为其文档建立索引。
- 支持建议和拼写建议
- 支持自动完成
- 支持地理空间搜索
- 支持基于REST的API(HTTP上的JSON)
- 支持实时搜索和分析
- Solr的最新版本(5.x版或更高版本)支持分布式和Colud技术。
- 在撰写本文时,它支持跨平台功能。
- 内置的身份验证和授权安全性
- 支持流媒体
Apache Solr的优点或好处:-
- 开源
- 它具有非常有用的管理界面。
- REST API轻巧
- 它是非常快速,简单,强大且灵活的搜索引擎
- 与ElasticSearch不同,它不仅支持JSON格式,还支持其他有用的格式:XML,PHP,Ruby,Python,XSLT,Velocity和基于HTTP的自定义Java二进制输出格式。
- 高度可用。 简单且高度可扩展。 强大,容错和可靠的搜索引擎。
- 无模式的数据存储。 但是,如果需要,我们可以创建一个架构来支持我们的数据。
- 由于Apache Lucene反向索引而提高了搜索性能。
- 支持结构化和非结构化数据
- 支持分布式,分片,复制,群集和多节点体系结构
- 支持批量操作
- 使用新插件可轻松扩展
- 支持缓存数据
- 对大数据环境有用
- 与ElasticSearch不同,它支持MapReduce算法
Apache Solr的缺点或局限性:
- 不能用作主数据存储。 仅用作辅助数据存储。
- 不是符合ACID的数据存储
- 不支持交易和分布式交易
- 不支持联接和复杂查询
- 对规范化数据无效
使用Apache Solr的受欢迎的客户:
- CNET,克鲁格,M TV
- Flipkart.com,Sourceforge.net,guardian.co.uk
- 易趣,digg
- Instagram的
- AT&T互动
- 高盛
- 美国在线音乐,美国在线旅行,美国在线黄页
- 迪士尼
- 苹果公司。
- 更多客户参考此链接
诸如Cloudera,Hortonworks和MapR之类的流行Hadoop发行版内部都使用Apache Solr来支持搜索功能。
注意
众所周知,Apache Solr用Java编写。 因此,我们应该在系统路径中包含Java / JRE才能使用它。 请正确安装和设置Java Environment。 Apache Solr 5.x需要Java 7或更高版本。 Apache 6.x需要Java 8或更高版本。
我们可以通过两种方式使用Apache Solr:
- 独立的Apache Solr服务器
- 云和分布式Apached Solr服务器
在本教程中,我们将使用独立Apache Solr Server v6.4.2来演示我们的示例。
注意
在初始版本的Apache Solr中,不支持Colud功能。 从Apache Solr 4.0发行版开始,它通过使用SolrCloud组件支持Cloud。
1.在本地安装Apache Solr
请按照以下步骤在Windows,基于Linux(如Ubuntu)或Mac OS环境中本地设置独立Apache Solr Server。
注意
要下载最新的Apache Solr,请参考此官方下载链接
1.1 Windows环境
- 下载最新版本的Apache Solr
使用此链接下载Apache Solr V. 6.4.2。 您将获得
solr-6.4.2.zip
于Windows环境的solr-6.4.2.zip
。- 将zip文件解压缩到本地文件系统
将
solr-6.4.2.zip
文件solr-6.4.2.zip
压缩到F:\solr-6.4.2
- 设置环境变量
让我们假设