Solr总结

Solr总结

 

2018年9月2日

  • Solr是什么

Solr是一个开放源码的的搜索平台,用于构建搜索程序,它的底层是由JAVA语言开发的, 它是建立在Lucene(全文搜索引擎)之上。Solr是一个可扩展、可部署、搜索、存储的引擎,优化以文本为中心的搜索数据,降低用户搜索时对数据库的压力。

  • 为什么要用Solr

用户在进行商品搜索的时候,如果我们只是单纯的去数据库查询信息,效率会非常低,大量信息的查询也会对数据库造成很大的压力。进行条件搜索,高亮展示的部分都不容易完成。而对于solr,它是将数据存放到solr的索引库中的,这个索引库跟数据库不同,我们可以理解成一个文档,solr做的是文档的全文搜索,搜索效率会比数据库高很多,有效的降低了数据库的压力。

  • 如何使用Solr
    1. 环境搭建

在使用Solr的时候,首先配置一个Tomcat服务器,然后把solr.war包丢进Tomcat的WabApp下,在TomCat启动时solr.war会自动创建出一个文件夹,然后再创建一个solrhome文件夹,到solr的web.xml中配置solrhome相对应的路径,就能够启动Tomcat,访问solr的管理界面了。

由于Solr只支持英文的分词,所以我们还需要配置一个中文分词器,有一个IK的jar包,将IK的jar包放到solr的lib下边,然后配置solr的schema.xml,将IK分词器的域配置一下。

这里的IK中文分词器共有三个域:普通域、复制域、动态域

域相当于数据库的表字段,用户存放数据,因此用户根据业务需要去定义相关的域,一般来说,页面需要展示的数据、查询的数据、和需要被用到的数据,都需要到schema.xml中配置相关的域信息。比如像商品标题,商品详情,这些关键的信息,配置到schema.xml中

接着需要在代码的pojo(实体类)相应的字段添加@Field注解来进行和schema.xml里面配置的域名称相对应。

solr的查询,根据用户传递到后台的查询条件,将条件进行设置,也可以设置关键词高亮显示,我们使用的是spring Data Solr框架,也是一个核心的SolrTemplate类进行操作。

query.addCriteria设置查询关键字、query.addFilterQuery设置过滤条件(如:分类 品牌 规格 价格范围 )、query.addSort设置排序(如:销量、价格、评论)、query.setOffset,query.setRows 设置分页信息;最后调用solrTemplate.queryForHighlightPage获取查询结果返回给前端页面。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值