Solr介绍

Solr介绍

1、solr是什么

  先抛出一个较为官方的solr的介绍,这段介绍来自于solr in action一书中。solr是一种具体的NoSQL技术,是一种非关系类型的搜索工具,被用来解决特定的问题。具体而言,solr是可扩展的、开箱即用的企业级搜索引擎,用来搜索大规模文本数据并根据相关度排序结果。可扩展指的是solr可以通过集群中多台服务器的分布式运行实现扩展,开箱即用指的是solr是开源的,易于安装和配置,并提供预先配置好的实力服务器,方便上手。solr可以用于处理包含百万级别文档的索引,并且solr针对自然语言文本搜索进行了优化,而且solr的搜索速度非常快,即使是一些复杂的查询也会在几十毫秒内完成。

  这里需要注意的是,solr是非关系型的。这个概念常常出现在数据库中,比如关系型数据库,非关系型数据库等。关系型数据库包括常见的ORACLE、MySQL等大名鼎鼎的数据库,而非关系型数据库则有mongoDB、HABASE、redis等。这里的非关系型与此分类类似,非关系型数据库严格上将并不是一种数据库,而是数据结构化存储方法。solr将一个数据集中的文档抽取关键词,并将关键词与文档的关联关系写入到索引中,在查询时则直接从索引中取出。

  在描述有搜索引擎处理的数据类型时,必然会遇到非结构化这一术语。这种非结构化是从计算机的角度来讲的,因为基于人类语言的文本文档都有隐含的结构。我们在看一个文本的时候,我们可以把一篇文档分成段落与句子,又可以把句子分成主语,谓语,宾语等等,而计算机看到的或者说读到的只是字符流。所以我们要对字符流做出处理,将其按照一定的结构存储起来,并使其能够在应用被搜索到,这正是solr这样的搜索引擎要做的。solr将非结构化的数据进行处理,形成一定的结构,并将其存储起来。

2、为什么要使用solr

  我们可以将solr看作一个数据库与基于这个数据库的搜索引擎,只不过,这个数据库里面,存的是关于文档与关键词关系的映射。像Solr这样的搜索引擎,是以文本为中心的,大数据量的,以读为主导的搜索引擎。当用户对文本中的信息不感兴趣,搜索引擎就不是解决问题的最佳方案,所以,以文本为中心这一点很重要。比如,我们来看一个差旅费用报告单,这个报告单中包括一些结构化的数据字段,如日期,费用类型,币种以及金额等,此外,还包含一个备注字段,对该项花费做出简要的描述。这是一个包含文本但并不是以文本为中心的数据实例。因为,财会部门更关心文档中的机构化数据,而不是最后的备注。数据中包含文本字段并不意味着就与搜索引擎自然适配。

  搜索引擎擅长处理的数据另一个关键特征是读主导,即能实现有效读取,且无需经常更新的数据。当然,solr是可以对已有的文档进行更新。“读主导”表示文档被读取的次数远远多于被创建和更新的次数。事实上,solr提供了近实时搜索,允许每秒索引数千文档,并且立时就能搜索到它们。读主导背后的关键是,当向solr中写入数据时,要做好读取和重复读无数次的准备。搜索引擎擅长执行查询数据,而非存储数据。另外,如果必须对搜索引擎里的已有数据经常更新,那么搜索引擎可能不是最佳解决方案。如果需要对已有数据进行快速随机写操作的情况,那么 其他的NoSQL技术会是不错的选择。

  solr在存储数据时是非常灵活的,也就是说文档不必拥有相同的结构。在关系型数据库中,每一条记录都具有相同的结构,而在solr中,文档可以有不同的字段。当然,同一索引的文档字段之间可能存在一些重叠,但他们不必是相同的。

  此外,还需要注意的是,社么样的数据适合存储在solr中,而什么样的数据不适合。例如,对在线视频创建索引时,二进制视频文件不应该在solr中存储,关于视频的描述则可以保存在solr中。这个例子说明,不要讲solr作为通用的数据存储技术,solr的任务是找到你感兴趣的视频,而不是存储它。

  所以,当我们拥有大量的数据,并且我们非常关心这些数据中的内容,想要从这些数据中找到我们所关心的东西时,那么,solr就是一个不错的选择。

  你可能会想到,我用关系型数据库一样能做到将需要的数据搜素出来,那么我为什么不选关系型数据库呢?在简单的例子中确实是这个样子,但是,关系型数据库重视简单的罗列查询结果,这些查询结果只能根据表中的一列或者多列进行排序,换言之,文档的相关度排序是信息检索有别于其他搜索类型的重要方面。

3、功能概述

1、分页与排序

solr支持分页请求,不用一次性返回所有匹配的文档。

2、分面

分面对搜索结果归类分组,帮助用户限定查询条件和发现更多信息。

3、自动建议

自动建议向用户展示索引中可用的词项和短语,在用户开始输入时,根据输入情况显示一个查询列表。

4、拼写检查

包括自动更正和对输入的查询纠错

5、搜索结果高亮

高亮显示结果文档的特定部分

6、地理空间搜索

地理空间搜索可以根据地理位置对文档进行查找和排序

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中使用Solr,你可以按照以下步骤进行配置和使用。 首先,你需要在Maven中添加Solr的依赖包。可以在pom.xml文件中添加以下代码: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-solr</artifactId> </dependency> ``` 这样就引入了Solr的启动器。 接下来,你需要在配置文件中进行Solr的相关配置。可以使用yml格式的配置文件,添加以下内容: ``` spring: application: name: solr data: solr: host: http://127.0.0.1:8080/solr server: port: 8983 ``` 这样配置了Solr的主机地址和端口号。 然后,你可以在代码中使用Solr。可以通过注入SolrClient来对Solr进行操作。在代码中添加以下注解: ``` @Resource private SolrClient solrClient; ``` 这样就可以使用solrClient来对Solr进行操作了。 总结起来,使用Solr在Spring Boot中的步骤包括引入Solr的依赖包、配置Solr的相关信息,然后通过注入SolrClient来对Solr进行操作。 #### 引用[.reference_title] - *1* *3* [Solr介绍,安装,以及在Springboot项目中的初步使用](https://blog.csdn.net/weixin_42482624/article/details/117114001)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [9.Spring Boot整合Solr](https://blog.csdn.net/qq_45305209/article/details/130791847)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值