Solr介绍,安装,以及在Springboot项目中的初步使用

  1. 一.Solr

    1.什么是Solr? Solr是一个可扩展的,可部署,搜索/存储引擎,优化搜索大量以文本为中心的数据。 注:solr文档 https://www.w3cschool.cn/solr_doc/solr_doc-ltzn2fm4.html

    2.Solr的优势
    2.1 solr本身也可以看成数据库,(no sql类型),但它比数据库搜索速度更快,所以在项目中我们一般把搜搜的部分交给solr,就像我们在京东首页所看到的商品信息,并不是来自数据库,而是来源于sorl的索引库

    2.1 数据库本身不能实现分词效果,而只能使用模糊查询,但是模糊查询非常低效,查询速度比较慢,由于在实际生活中,一般搜索是用的比较多的,这样数据库压力自然就很大,所以我们就让供专业的solr来做搜索功能
    ———————————————— 版权声明:本文为CSDN博主「飘…」的原创文章,遵循CC 4.0
    BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/luo609630199/article/details/82494708

    3.Solr的安装

    4.Solr工作原理 http://www.elecfans.com/emb/dsp/20190603950720.html

    5.Solr核心core详解 https://blog.csdn.net/sswqzx/article/details/84501215

    6.IK ANYLISIS中文分词器配置 https://github.com/magese/ik-analyzer-solr

    7.solr admin增删改查 删:document选中xml name:“张三”

    将会删除含有name:”张三”的文档删除。 增:document选json格式加入json数据
    改:只要id值一样就会覆盖,通过覆盖来修改。 查:query

    在查询时即使倒词也能查到数据是分词器的效果。

    Solr admin管理页面还有个数据更新问题,当core中数据更新时需要刷新页面否则查找不到更新后的数据。

    注意:查询时,不仅查询的关键词会分词,要查询的关键词也会分词。比如查询关键词为“呵”,接下来要查询的数据是“呵”,“呵呵”和“呵呵呵”这三个,如果使用的是text_ik分词器,则首先关键词“呵”会被分词,分成一个“呵”,然后数据”呵呵“也会被分词,但只会分一个“呵呵”,而“呵呵呵”也会只会被分成一个词“呵呵”(这些都是由分词器本身的规则决定的),查找的匹配原理就是将关键词的分词与数据的分词匹配,如果匹配则返回结果,否则不返回。比如这里关键词“呵”只能匹配到数据“呵”,而匹配不到“呵呵”和“呵呵呵”,所以查找不到它们(存疑)。
    在solr admin的query查询中,用符号+表示逻辑“or”。

    data_context:啊 + file_name:打 注意“+”号左右都有空格。

    8.Solr查询流程与索引的建立 solr在执行查询时,会先通过分词器对关键词进行分析得到一组词,然后将得到的这组词和已有索引中的词进行对比,如果已有索引中有了该词,则该词的查询结果直接用已有所有中记录的结果,如果没有,则用该词作为新增索引(创建索引)并执行顺序查询并记录返回的结果(记录的是查询内容的位置)。
    索引的优点是一次查询,多次使用。

    6.solr在命令行中的使用 <1>solr服务的开启和关闭,重启 A.在用cmd进入solr的bin目录后,执行命令solr start开启solr服务。 B.开启后,执行命令solr restart -p 8983 可以重启端口号是8983的solr服务。
    C.使用命令solr stop -p 8983关闭端口号是8983的服务。 D.使用命令solr start -p
    8899,以端口号8899开启solr服务。如果不指定端口号(如1),则默认使用端口8983.

    8.solr admin的使用 Solr admin可以用来方便的对solr进行操作。关于其操作在该文档所在目录有一个视频说明。

    9.Springboot中solr的引入和使用 <1>引入 maven中添加包: org.springframework.boot
    spring-boot-starter-data-solr

    修改application.properties配置文件,添加项:solr浏览器访问地址
    spring.data.solr.host=http://localhost:8983/solr <2>使用
    如果<1>步骤完成,则可以直接使用 @Resource private SolrClient solrClient;
    注入solr来对solr进行操作。

    A)删除操作举例 String query=“good:蓝色衬衫”;
    solrClient.deleteByQuery(“solr_demo”,query);
    solrClient.commit(“solr_demo”);
    DeleteByQuery中第一个参数是core核心名,第二个是查询语句,该core中符合该查询条件的数据都将被删除。commit是提交,执行任何solr命令最后都需要加用commit提交命令才能生效。

    11.从mysql导入数据到solr的流程

    12.java进行ftp连接

    <1> commons-net
    commons-net 3.0

    出现过的问题: <1>数据库连接报错:useUnicode=true应当以“;”结尾 解决方案:将&用其防转义符号&代替
    url="jdbc:mysql://172.19.7.80:3306/poadb_cms?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8”

    <2>solr导入大量数据时报错:非法的setFetchSize()值 这里报错的原因可能是因为导入的数据量太大了,导致内存溢出
    可以在data-config设置的mysql查询语句限制查询条数 比如 query=select * from
    cms_news_content 本来会查询出20000多条数据导致报错 修改为 query="select * from
    cms_news_content limit 2092” 就导入成功了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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进行操作了。 总结起来,使用SolrSpring 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、付费专栏及课程。

余额充值