Solr:不止于文字

本译文自 Moshe Kranchttps://dzone.com发表的 Solr: Not Just For Text Anymore,文中版权、图像代码等数据均归作者所有。为了本土化,翻译内容略作修改。

Solr于2004年首次创建时,打算成为OpenSource文本搜索引擎,为企业网站和内部文档搜索等用途提供类似Google的搜索功能。 基于Lucene搜索库,Solr添加了一个客户端 - 服务器体系结构,一个RESTful API以及用于文本查询的一些语法块。

快进到2016年,Solr已经从企业搜索引擎或穷人的Google发展成为实时大数据分析的可行选择,与Redshift,Spark和Presto等产品展开竞争。 蜕变是渐进的,所以你可能已经错过了。 这儿是一些精彩片段:

  • 支持非文本字段:早期,Solr引入了定义非文本字段(如数字和日期)的功能。为什么这在文本搜索引擎中很有用?例如,除了描述电影标题的文本字段之外,还可能需要定义电影的发行年份。然后用户可以搜索在2005年到2008年之间制作的所有电影,其标题包括“战斗”一词。
  • 分面搜索:这是将搜索结果动态聚类到类别中,以便用户可以根据字段中的任何值深入搜索结果。例如,假设可用作业的数据库包含“城市”字段和“位置”字段。然后,用户可以搜索所有软件工程师职位,并查看每个城市有多少个开放的软件工程师职位。或者,用户可以搜索波士顿的所有职位,并查看波士顿每种职位的打开情况。 (注意,faceting实际上是一种高速聚合形式,即计算给定字段的所有值的实例数量,而不需要预聚合。)
  • 高可用性和可扩展性:2012年发布的SolrCloud提供了Solr节点的集群。数据在集群中的节点之间自动分割并复制,查询自动分布在整个集群中,并自动执行节点故障切换。通过SolrCloud,Solr成为了可以信任任务关键型数据和操作的行业优势产品。
  • 性能改进:在早期,向Solr添加新数据需要重建整个索引。这使得Solr成为一个非常静态的产品 - 索引重建计划在下班时间进行,在此之前没有新的数据可以搜索。后来的版本通过内存索引实现了即时更新,补充了主要的基于磁盘的索引。 Solr还添加了多层缓存,以便经常重复的查询(或部分查询)不需要重新运行。
  • SQL支持:Solr查询语言与SQL相似,但不是SQL,因此它不适用于SQL兼容工具,例如Tableau等分析可视化工具。最近的Solr版本增加了对SQL的支持以及JDBC驱动程序。现在,Solr可以用作任何关系数据库的替代品。
  • 非结构化数据的无模式支持:Solr需要知道给定字段的类型才能正确索引(索引文本与索引数字非常不同)。对于关系表而言,这是很好的,所有列都是事先知道的。但是,在NOSQL的世界里,事先并不知道列,数据是一组任意的键值对,Solr怎么知道字段类型呢? Solr想出了一个基于用户定义的命名约定的解决方案,例如,如果字段名称以“t_”开头,那么它是一个文本字段。得益于此,Solr可以支持NOSQL非结构化数据。
  • 彭博分析组件Solr:彭博金融服务公司广泛使用Solr,发现现有的统计软件包非常缺乏。因此,他们开发了一个高性能的框架,可以对时间序列数据执行复杂的计算和聚合,然后将其发布到OpenSource。

今天,Solr不仅仅是用于文本搜索。它是一个高速,高可用性的SQL / NOSQL数据库,可以实时执行聚合和其他复杂的计算。这不仅仅是理论 - Ness的客户在生产中使用Solr来为数百个同时在线的用户提供实时聚合和时间序列分析。 Solr已经发展到不仅仅是文本索引引擎的地步。对Spark和Amazon Redshift等其他产品来说,这是一个可行的替代方案,可以对大数据进行实时聚合。

结语:Solr有一个名叫ElasticSearch的年轻竞争对手,它也是基于Lucene。这两种产品在功能上相互竞争,一种产品的新特性正在迅速渗透到另一种产品中。我不打算在这个竞赛中占据一席之地 - 在这里写的关于Solr的所有内容在ElasticSearch中也是如此。但是,由于Solr在过去十二年中所经历的蜕变,Solr的故事更加引人注目。正如这个笑话所说,G-d只能在6天内创造这个世界,因为他不需要支持一个已经安装的基地。 Solr团队不得不重新创建Solr作为实时分析引擎,同时继续支持已安装的基础,为此,他们值得我们的钦佩。

原文链接:https://dzone.com/articles/solr-not-just-for-text-anymore

原文作者:Moshe Kranc

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CreateAMind

线控技术

利用各种传感器将操作员的操作转换成电信号,并将其传递到控制单元中进行分析,控制单元将分析结果传递到执行机构,由电子执行机构完成对车辆的操纵。

861
来自专栏编程

编程资源

现在网上视频资源很多,我一开始很喜欢这些资源,看到了也总想保存,有种感觉是收藏了自己就一定会看,看了就一定会用。其实资源太多,太杂并不是好事,会让你不知道应该看...

2017
来自专栏Java架构

跳槽必看!一位程序猿面试蚂蚁金服后端的经验总结!前言自我介绍最近的项目经历总结

2155
来自专栏吉浦迅科技

Allinea宣布支持CUDA 7

Allinea软件于2015年3月份宣布其调试和性能调优工具套件Allinea Forge支持CUDA 7.0,同时在它的性能分析器和分析工具里集成GPU利用...

2635
来自专栏程序人生

你的Project Starter在哪里?

今早看到一个github repo,hackathon starter。它是一个nodejs的project starter,帮助你快速建立项目原型。 ? 它提...

33510
来自专栏机器人网

【推荐】非常棒的大数据学习资源

今天为大家推荐一些翻译整理的大数据相关的非常棒的学习资源,希望能给大家一些帮助。 ? 服务编程Akka Toolkit:JVM中分布性、容错事件驱动应用程序的运...

3755
来自专栏开源项目

易学好用的编程教程资源汇总 | 码云周刊第 46 期

码云推荐 对于技术达人来说,广纳知识点是进步的源泉。通过阅读技术文章我们可以学到很多东西,既可以学到业务技能,又可以了解行业动态,最不济,也锻炼了阅读和学习...

2806
来自专栏SDNLAB

解耦重构 Internet BGP SDN

高清视频直播和云计算的蓬勃发展,带来互联网流量持续高速增长,主流云公司的Internet出口带宽都已经达到Tbps级别。 鉴于网络的拥堵大部分发生在出口互联,E...

2684
来自专栏圆方圆学院精选

【董天一】IPFS家族(一)

IPFS这个项目其实很大,并不像大家想象的是一个东西,IPFS是由很多模块组成,每一个模块现在都已经独立成项目了,并且有自己的主页。让我们来简单看一下IPFS家...

1721
来自专栏EAWorld

从Netflix的Hystrix框架理解服务熔断和服务降级

伴随着微服务架构被宣传得如火如荼,一些概念也被推到了我们面前,其实大多数概念以前就有,但很少被提的这么频繁。想起有人总结的一句话,微服务架构的特点就是:“一解释...

4336

扫码关注云+社区