Solr使用
配置安装
部署环境
系统环境:centos
Jdk:1.7
Tomcat:7
Solr版本:5.2
部署solr服务器
1.下载solr-5.2
wget http://mirrors.hust.edu.cn/apache/lucene/solr/5.2.0/solr-5.2.0.tgz
2.解压solr-5.2.0.tgz
tar zxvf solr-5.2.0.tgz
3.在文件夹solr-5.2.0\server\webapps中solr.war拷贝到tomcat中
cp solr-5.2.0/server/webapps/solr.war apache-tomcat-7.0.67/webapps
4.启动tomcat war包部署完成
sh apache-tomcat-7.0.67/bin/startup.sh
5.部署完成后,将solr-5.2.0\server\lib\ext文件下的jar包拷贝,部署在tomcat的solr的lib文件夹下
cp solr-5.2.0/server/lib/ext/* apache-tomcat-7.0.67/webapps/solr/WEB-INF/lib
6.新建文件夹solr_home(名字自己取),将solr-5.2.0\server\solr文件夹的内容拷贝到solr_home中
mkdir solr_home
cp -rf solr-5.2.0/server/solr/* solr_home
7.修改tomcat部署的solr中的web.xml(默认注释,需要打开)
这里的<env-entry-value>中的值就是在第5步新建的solr_home地址
vim apache-tomcat-7.0.67/webapps/solr/WEB-INF/web.xml
我们打开它,并且找到这一行,放开注释,并且修改<env-entry-value>
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>/home/xu/solr_home</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
到最后运行localhost:端口/solr,如果出现此页面即配置成功
在solr中创建Core
在第一次运行solr时,我们需要创建一个数据我们的core
1.在linux中执行命令
mkdir solr_home/mysolr
2.将示例的配置文件复制到我们创建的mysolr中
cp -R solr_home/configsets/basic_configs/conf/ solr_home/mysolr
3.接下来我们就需要去管理界面添加core
修改上面两项名称为mysolr,即我们第一步创建的文件夹名(第一步中创建的文件夹名字是什么这里就写什么)
在下方英文提示中:告诉我们上面两个框中的文件夹必须在创建core之前存在,我们所创建的文件夹中有core的配置文件
创建成功后会生成core.properties 与 data文件夹
Core.properties中是这个core与solr的映射关系,还有配置文件的名称等。
Data中存储了这个core中的索引等等。
具体解释可以参考http://iamyida.iteye.com/blog/2211728
导入数据库中的数据到Core中
我们需要导入两个jar包,一个solr导入相关的jar,一个数据库的驱动jar
cp solr-5.2.0/dist/solr-dataimporthandler-5.2.0.jar apache-tomcat-7.0.67/webapps/solr/WEB-INF/lib
cp 你的数据库驱动jar目录 apache-tomcat-7.0.67/webapps/solr/WEB-INF/lib
(需要拷贝你所用的数据库的驱动包)
solr-dataimporthandler-5.2.0.jar 把这个jar包拷贝到tomcat中,并重启tomcat
默认dataImport功能在Solr5中是禁用的,需要在solrconfig.xml中添加如下配置开启数据导入功能:
vim solr_home/mysolr/conf/solrconfig.xml
添加如下
<requestHandler name="/dataimport"
class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
如上被我标红的data-config.xml 可以在示例中找到
从示例中直接拷贝一份data-config.xml到我们创建的core中
cp solr-5.2.0/example/example-DIH/solr/db/conf/db-data-config.xml solr_home/mysolr/conf/data-config.xml
把data-config.xml稍作修改即可使用
这里我是以mysql为例子使用的
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://172.16.231.5:3306/db_inquiry_gldjc?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNul" user="root" password="root" />
<document>
<entity name="mobile" query="select id,bill_number,title,created_at from artificial_inquiry_bills">
<field column="id" name="id"/>
<field column="bill_number" name="billNumber"/>
<field column="title" name="title"/>
<field column="created_at" name="createdAt"/>
</entity>
</document>
document:Solr的信息的基本单位的是Document,它是一组描述某些事物的数据集合。
Field:Document的主要构成单元,是更具体的信息描述。
然后我们需要在schema.xml中定义在data-config.xml中的field
<field name="billNumber" type="string" indexed="true" stored="true"/>
<field name="title" type="string" indexed="true" stored="true"/>
<field name="createdAt" type="date" indexed="true" stored="true"/>
Name:单元名 type:类型 indexed:是否索引 stored:是否储存
一切准备工作做好后在管理页面
按照步骤
1.点击dataimport
2.Command选择full-import 就是全部导入的意思
3.Entity 选择你想导入的entity
4.最后点击execute,即可导入
导入成功即可看到如下页面