solr5.4.0安装
- 前言
- 配置
- 创建collection
- 启动
- 导入数据
前言
前面已经讲了如何在本地安装启动solr,这一节讲一下如何创建collection
配置
创建collection命令
cd命令进入solr文件夹中的bin目录,输入命令:
solr create -c <name>
配置solrconfig.xml
此时,我们可以看到路径solr/server/solr
下多了一个文件夹:collectionTest
。在collectionTest/conf/文件夹里面有个文件名为:solrconfig.xml
,在这个文件中加入如下内容:
<!--我的requestHandler配置start-->
<requestHandler name="/dataimport"
class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
<!--我的requestHandler配置end-->
创建data-config.xml
在当前目录(collectionTest/conf
)下创建配置文件data-config.xml
,内容如下:
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test" user="user" password="password"/>
<document name="search_object">
<entity name="user" query="select username,password
from user ">
<field column="username" name="username"/>
<field column="password" name="password"/>
</entity>
</document>
</dataConfig>
这里的配置是为了获取到mysql数据库里的字段信息。并定义在solr里应用时对应的别名。
配置managed-schema
打开managed-schema
,添加以下内容:
<field name="name" type="strings" indexed="true" stored="true"/>
<field name="password" type="string" indexed="true" stored="true"/>
必须用managed-schema,solr-5.0 以上默认对schema的管理是使用managed-schema,不能手动修改,找到name="id"
的field,把它的required=’true’的属性干掉,因为如果你的数据表中没有id字段的话,在导入数据时候就会报错。
导入jar包
将mysql-connector-java-5.1.35.jar
放入solr/server/lib
文件夹下。
修改配置文件solr/server/solr/connectionTest/conf/solrconfig.xml
,加入以下内容:
<lib dir="../../../contrib/dataimporthandler/lib" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-dataimporthandler-.*\.jar" />
<lib dir="../../../lib/" regex="mysql-connector-java-5.1.35.jar" />
数据库表结构
建库sql:
/*
SQLyog Ultimate v11.25 (64 bit)
MySQL - 5.6.17-enterprise-commercial-advanced : Database - yyp
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;
/*Table structure for table `user` */
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
数据表数据如下:
启动
在solr/bin
目录下输入命令
solr start