solr5.3.1 windows环境搭建及导入mysql数据创建索引
solr5.3.1 windows搭建
一、介绍
Solr中的每一个core/collection都拥有自己的schema(模式),在solr 5之前,solr使用schema.xml文件进行定义,早solr 5以后,solr支持通过api对core/collection进行模式的修改。因此在solr 5用户有两种模式方式:经典模式与manager-schema,两种模式。
(1)经典模式
经典模式下,用户只能通过schema.xml文件去定义FieldType、Field等,因此这种情况下需要特别的注意在定义模式小心出现漏定义的错误。因为solr5以后的版本默认使用manage-schema模式,因此如果想使用经典模式,则需要在solrconfig.xml文件中定义schemaFactory标签进行模式的定义:
<schemaFactory class="ClassicIndexSchemaFactory"/>
(2)manager-schema
manage-schema模式不支持用户通过修改manage-schema文件去进行FieldType、Field的修改(但实际上是可以manage-schema文件进行修改)。manage-schema提供一套schema api去创建、修改、删除FieldType、Field等。solrconfig.xml文件中将以下取消注释或者直接复制:
<schemaFactory class="ManagedIndexSchemaFactory">
<bool name="mutable">true</bool>
<str name="managedSchemaResourceName">managed-schema</str>
</schemaFactory>
注:两种模式不能同时使用
二、schema(经典模式) 搭建
2.进入solr/bin 目录 solr start 启动 solr 此时开启的服务是放在jetty下的服务,也可以放在tomcat下,tomcat方式不说了
3.服务开启后默认端口是8983,通过localhost:8983/solr 访问了,不能访问请查看下自己的Java版本需要高于jdk1.7版本
从mysql数据库中导入数据
1.创建core或者collection
两种方式:
1.使用命令行 solr/bin 目录下 solr create -c collection(名字可以更改)
2.使用访问链接创建
localhost:8983/solr/admin/cores?action=CREATE&name=collection&instanceDir=collection
默认创建的目录在solr5.3.1/server/solr下
注意:上步骤成功后 进入 /solr5.3.1/server/solr/collection/conf/solrconfig.xml将一下代码注释掉:
<schemaFactory class="ManagedIndexSchemaFactory">
<bool name="mutable">true</bool>
<str name="managedSchemaResourceName">managed-schema</str>
</schemaFactory>
同时新增 <schemaFactory class="ClassicIndexSchemaFactory"/>
原因是创建collection时候默认使用managed-schema文件,此处需要使用自己创建的schema.xml
文件。
2.修改solr5.3.1/server/solr/collection/conf/managed-schema文件为schema.xml
schema.xml 文件添加filed,默认有id,源文件中的filed不要动,直接添加filed即可
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="t_name" type="string" indexed="true" stored="true" />自己添加的
<field name="t_age" type="int" indexed="true" stored="true" />自己添加的
<field name="_version_" type="long" indexed="true" stored="true"/>默认
<field name="_root_" type="string" indexed="true" stored="false"/>默认
<field name="_text_" type="text_general" indexed="true" stored="false" multiValued="true"/>默认
3.修改solr5.3.1/server/solr/collection/conf/下的solrconfig.xml的配置文件,配置一下添加数据库数据的xml,如下:(直接复制粘贴)
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str>
</lst> </requestHandler>
4.新建data-config.xml 配置数据库位置、用户名、密码等等
<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/database_name" //数据库地址 user="userName"
//数据库用户名 password="passWord"/> //数据库密码 <document> <entity name="check_lawyer" //实体名称 query="select id, name from tableName"> <field column="id" name="id" /> //column 表中字段名称 name solr对应的filedmingc <field column="name" name="name" /> </entity> </document></dataConfig>
5.将solr-dataimporthandler5.3.1.jar从solr5.3./dist/文件夹下copy到solr5.3./server/solr-webapp/webapp/WEB-INF/lib当中,此java包是导入数据用的。
6.下载 mysql-connector-java-5.1.35-bin.jar,将它copy到solr5.3.1/server/lib下。
jar下载地址址:
7.查看filed是否创建成功
进入solr管理界面
按照图片步骤 能看到filed t_age,t_name 已经添加进去
8.导入数据
进入solr管理界面,1(步骤1中-c 后面的名称),2,3按照图片中的步骤,4选择下entity(步骤4中entity名称) 最后点击execute 等待几秒刷新下页面出现以下就是成功导入数据了
Added/Updated:7 documents 就是导入进去7条数据
9.测试
点击图片中的query进行查询 fq 为条件,右边返回结果,返回结果有多种结构自己选择,solr导入mysql数据完毕!
solr查询详解