部署solr通常有2中方式,一个是部署在外部的web容器中例如tomcat,另一个是使用solr内置的jetty作为web容器。
我们这里采用内置的jetty作为web容器的部署方式。
1.下载solr
下载solr
本次使用的solr版本是6.6.0
下载之后找到合适的位置解压
2. 启动solr
在打开cmd窗口进入solr的解压目录下的bin文件夹执行
solr start -p 8983
这时我们就可以在浏览器访问solr的管理界面
3. 创建core
- 方法一
通过查看solr根目录下的README文件了解到可以使用
solr create -c name
来创建core
根据上面命令的反馈可以得到一些有用的信息
- 每个core需要有一个 core instance directory
- 可以使用solr的rest 接口来实现core的创建
这时候我们刷新下一管理界面就可以看到
- 方法二
使用solr管理页面 创建
-
在solr.home 目录下创建一个文件夹,和core的名称相同
这里我们创建core3
2.拷贝配置文件到core3中
上图中的configsets文件中存放的是基本的配置文件
我们把configsets中的basic_configs下的conf拷贝到core3中
然后在core3中新建文件夹data,作为索引数据的存放文件
- 创建core
在solr管理页面中点击core admin 下的 add core,修改name 和instanceDir为core3,然后点击add core
-
创建完成
点击完成之后 core admin中就会多了一个core3
core3的文件夹下面也多出了额一个core.properties文件
内容是
#Written by CorePropertiesLocator
#Fri Sep 15 03:34:37 UTC 2017
name=core3
config=solrconfig.xml
schema=schema.xml
dataDir=data
- 方法三
通过方法一种的命令反馈我们知道,也可是使用solr的rest 接口来完成core的创建
首先完成方法二的前两步,给core取名为core4
- 请求solr rest接口
http://localhost:8983/solr/admin/cores?action=CREATE&name=core4&instanceDir=core4
- 创建成功
4. 导入数据
solr中负责导入数据的模块叫做DataImportHandler,它有多种实现方式
- 从数据库导入
solr支持多中形式的数据导入,其中最常用的就是从数据库导入数据
我们可以从solr自带的/example/example-DIH/solr/db/conf中找到从数据库导入数据的相关配置作为参考,然后修改core1内的配置
- 修改solrconfig.xml
添加如下配置
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
- 从example中拷贝db-data-config.xml到core1,并根据数据库的使用情况进行修改,我这里使用的是mysql
<dataConfig>
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="123456" />
<document>
<entity name="item" query="select * from showentity">
<field column="description" name="description" />
<field column="title" name="title" />
<field column="createTime" name="createTime" />
<field column="type" name="type" />
</entity>
</document>
</dataConfig>
- 将mysql的数据库连接jar拷贝到solr根目录的dist文件中,然后修改solrconfig.xml,加载这个jar包 ,和dataimport相关的jar包
<lib dir="${solr.install.dir:../../../..}/dist/" regex=".*\.jar" />
- 修改managed-schema为schema.xml并根据db-data-config.xml中的配置的从数据库导入的字段进行修改.
<field name="title" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
<field name="description" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
<field name="createTime" type="date" indexed="true" stored="true" required="true" multiValued="false" />
<field name="type" type="string" indexed="true" stored="true" required="true" multiValued="false" />
- 在core admin选项中 选择刚刚修改的core,然后点击reload按钮,加载刚刚上面修改的配置
- 开始导入数据
选择刚刚修改的core 下面的DataImport选项,然后点击execute按钮
- 进行查询
在query选项中进行查询,发现数据已经导入进去了
总结
ok到这里就完成了solr单点的部署和简单的配置,后面会继续总结一下solr cloud集群的部署,solr一些配置文件的说明等