solr6.2从环境部署到与mysql整合到中文分词器到solrJ的使用
solr6.2从环境部署到与mysql整合到中文分词器到solrJ的使用
solr就不多介绍了。是用于搜索功能的开源工具,很强大
一、solr环境部署
solr本身能够用jetty启动,但是还是用tomcat启动比较适合我自己。学习solr有两个星期了,到现在(2016.11.27)solr最新版已经是6.3.0了,不过没关系,基本的东西都是一样的。
1、solr官网: http://lucene.apache.org/solr/
下载后解压,是这样的目录结构:
二、core配置
solr的core非常重要,还有什么多core什么的,由于我也是刚刚学习,还没有搞明白,这里只是能够用最简单的,我们将在solrhome文件夹下,新建文件夹:my_solr,然后将solr-6.2.1\example\example-DIH\solr\solr下的文件以及文件夹copy到my_solr下,
2、将mysql的驱动jar包,copy到我们tomcat-solr功能中(lib文件夹下,这个们问题的吧),
3、修改my_solr文件夹下的conf文件夹下的solr-data-config.xml文件:
Xml代码
这里面的内容具体什么意思,网上有很多专门介绍的文章博客,这里就不多说了
4、修改conf文件夹下的managed-schema文件,在schema标签下添加field
Xml代码
这里面name对应solr-data-config.xml中的name,要一直,否则solr就找不到字段了,
type是类型,indexed代表是否可用于检索,stored代表是否存储,multiValued代表是否有多个值,除此之外还有很多字段,读者可以移步度娘。
(另外说一下,我这里用的其实是schema.xml,而不是managed-schema文件,不过感觉都是一个样)
下面,看下我们的成就(别忘了mysql填点数据哦,否则啥也看不出来):
先刷新下solr数据:
在然后,比如我们数据库表中的context字段要进行分词,那么修改field:
Java代码
也就是修改type为分词器的name
这时我们在去solr查询一下,我们先填几条数据:
bean(注意要有solrJ的注解):
Java代码
solr在查询时,也有很多方法,能够设置查询的条件,比如分页、分片检索、结果的过滤条件、排序等,下面只是一个示例,我一个功能的代码片段:
Java代码
到此,我学到的solr的东西也就这些了,还会继续学习的。
我搭建好的tomcat-solr功能在我的github中:https://github.com/hejiawang/tomcat-solr
solrJ的练习工程:https://github.com/hejiawang/search-web