前言:
接触solr也有一段时间,在这里将学习的过程和体会记录一下。希望能给刚刚接触solr的人带来一些帮助。(实验环境 Windows+Solr5.5.2)
solr下载
可以在solr的官网找到之前和最新的solr版本 http://archive.apache.org/dist/lucene/solr/实验室的环境使用的是5.5.2,所以本教程使用的也是该版本,在上面的链接中找到对应的版本,下载解压solr-5.5.2.zip
即可。
solr运行
solr的运行也是很方便,在solr-5.5.2\bin
中输入命令行即可运行,我直接在CMD输入命令行,至于为什么不用gitbash
是因为,每次启动solr服务和创建核心的时候,总是会提示我端口的问题,导致核心创建失败,换到CMD就不会有这个问题。
1 | D:\solr\solr-5.5.2\solr-5.5.2\bin>solr start |
看到上面的命令行结果,就表示运行成功了。浏览器输入 http://localhost:8983/solr/#/ 就可以看到solr的界面了。关于solr界面的功能会在下面慢慢道来。
创建核心
核心你就把它想成是一个管理你索引位置、索引方式、配置数据源等的一个地方即可。用下面的命令创建一个core。
1 | D:\solr\solr-5.5.2\solr-5.5.2\bin>solr create -c new_core |
在/solr-5.5.2/server/solr/目录下可以看到刚刚创建好的new_solr
核心,在这个新创建的核心中需要配置的文件有managed-schema.xml
、solrconfig.xml
。
solrconfig.xml的配置
打开solrconfig.xml
,在这里我们配置一下数据的导入方式,在solrconfig.xml
找到其他的requestHandler
,把下面的配置复制到一起,便于以后管理。
1 | <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> |
然后在conf目录下生成一个data-config.xml
的文件,来配置一下我们的数据源,指定一下数据库的链接地址和表中的数据即可。
1 | <dataConfig> |
重启一下solr,你会发现solr界面报了一个错误,提示找不到DataImportHandler这个类。
1 | D:\solr\solr-5.5.2\solr-5.5.2\bin>solr restart -p 8983 |
只要把D:\solr\solr-5.5.2\solr-5.5.2\dist目录下的solr-dataimporthandler-5.5.2.jar
还有solr-dataimporthandler-extras-5.5.2.jar
拷贝到
D:\solr\solr-5.5.2\solr-5.5.2\server\solr-webapp\webapp\WEB-INF\lib中既可。
除了上面的两个包以外,还需要导入jdbc的包,不然你会发现数据导入不进去。JDBC下载链接 ,点击链接把下载的包,放到刚刚的文件夹…\WEB-INF\lib中,那么数据来源这块就算解决了。重启一下solr服务,在solr界面中选择你创建的核心,点击Dataimport功能,选择entity,然后执行即可。
managed-schema的配置
数据的来源配置解决了,选择来考虑一下对哪些数据进行索引。打开managed-schema.xml
,把下面的配置添加上去,field的配置不细说,就是对word和keyNo进行了索引,并且在搜素的时候指定默认的字段是word和keyNo。
1 | <field name="word" type="string" indexed="true" stored="true" required="false" multiValued="false" /> |
还需要到solrconfig.xml中把默认搜素的字段指定到defaultField,这样在我们不指定字段的时候,就会到默认字段中搜素。找到配置文件中要修改的位置,把<str name="df">defaultField</str>
添加上去。1
2
3
4
5
6
7
8<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">10</int>
<!-- <str name="df">text</str> -->
<str name="df">defaultField</str>
</lst>
</requestHandler>
因为配置文件修改了,所以要重新启动solr服务,重启之后,在dataimport
功能中重新excute
一下,因为我们添加数据的索引方式,所以数据需要重新import一下。等这两步操作完成以后,在solr界面中的Query
看看搜索的效果。
至此,solr的搭建和数据查询都已经完毕,在下一篇博客中,再来讲一讲solr的中文分词
。