1.检测系统自带Mysql,并卸载
[root@hadoop eclipse]# rpm -qa | grep mysql
mysql-libs-5.1.66-2.el6_3.x86_64
[root@hadoop eclipse]# rpm -e mysql-libs-5.1.66-2.el6_3.x86_64 --nodeps
2.通过网络安装MySQL (yum)
yum -y install mysql mysql-devel mysql-server
3.启动服务
# service mysqld start
开机自启动
# chkconfig mysqld on
4.设置用户和密码
#/usr/bin/mysqladmin -uroot password 'root'
5.进入
mysql -uroot -p123456
6.查看mysql用户
select host,user,password from mysql.user;
7.修改远程访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
8.重载授权表:
FLUSH PRIVILEGES;
mkdir /data/solr_home
启动tomcat,待tomcat启动成功后,关闭tomcat。打开tomcat的webapps目录。注意,此时solr的war包以及被解压成solr文件夹。删除tomcat 的webapps目录下的solr的war
包,保留solr文件夹。
修改配置文件 apache-tomcat-7.0.67\webapps\solr\WEB-INF\web.xml
solr/home
F:/solr_home
java.lang.String
新建core(solr中把配置的每一个模块都叫core),在solr_home目录下,拷贝collection1文件夹,并起名为test。打开test文件夹,修改core.properties文件,将name修改为test
重新启动tomcat,并访问solr,如出现以下界面,则表示新建test core成功。
data-config.xml
4.在hotel的的conf文件夹下并新建data-config.xml文件,配置如下
dataSource是数据库数据源。
Entity就是一张表对应的实体,pk是主键,query是查询语句。
Field对应一个字段,column是数据库里的column名,后面的name属性对应着Solr的Filed 的名字。
5. 打开hotel的conf目录下的schema.xml文件
(1)保留_version_ 这个field
(2)添加索引字段:这里每个field的name要和data-config.xml里的entity的field的name一样,一一对应。
6.修改同目录下的schema.xml(schema.xml 是solr对数据库里的数据进行索引管理和数据字段展示管理的配置文件)
删除多余的field,保留_version_ 和test这两个field(注意不要删除fieldType)
删除copyfiled和动态filed
添加索引字段:这里每个field的name要和data-config.xml里的entity的field的name一样,
一一对应。红色加粗部分为新增内容。
id
# 是否同步功能
# 1 - 开启 ; 否则不开启
syncEnabled=1
# 需要同步的solr core
syncCores=hotel
# solr server名称或ip地址
# 默认为localhost
server=localhost
# solr server端口
# 默认80
port=8080
# webapp name
webapp=solr
# 增量索引的参数
params=/dataimport?command=delta-import&clean=false&commit=true
# 重做增量索引的时间间隔
# 默认30分钟
interval=1
# 重做全量索引的时间间隔,单位分钟,默认7200,即5天;
# 为空,为0,或者注释掉:表示永不重做索引
reBuildIndexInterval=10
# 重做索引的参数
reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true
# 重做索引时间间隔的计时开始时间,第一次真正执行的时间=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;
# 两种格式:2012-04-11 03:10:00 或者 03:10:00,后一种会自动补全日期部分为服务启动时的日期
reBuildIndexBeginTime=03:10:00
org.apache.solr.handler.dataimport.scheduler.ApplicationListener
deltaImportQuery="select id,hotelName,address from itrip_hotel where id='${dih.delta.id}'"
deltaQuery="SELECT id as id FROM itrip_hotel where modifyDate > '${dih.last_index_time}'">
说明:deltaQuery是根据dataimport.properties配置文件中的更新时间,从数据库中查询出,修
改日期在最后一次更新日期之后的酒店数据,并记录其id,而deltaImportQuery的目的是将 deltaQuery查询出的数据导入到solr中。 6. 启动Tomcat进行测试
启动Tomcat,访问hotel模块
修改数据库中的酒店数据并同时修改该数据的modifyDate时间,
1分钟后查询酒店数据,确定数据是否更新
分词器: 是从用户输入的一段文本中提取关键词,用于其它业务操作。
常见的 JAVA 分词器: word 分词器、Ansj 分词器、Stanford 分词器、IKAnalyzer 分词器
课程选用分词器:IKAnalyzer 分词器
solr 如果是 3.x 版本的用 IKAnalyzer2012_u6.zip 如果是 4.x 版本的用 IK Analyzer
2012FF_hf1.zip,一定要对应上,要不然会配置失败。
IK 分词器下载地址: http://download.csdn.net/download/tjcyjd/8420639
`6. 重启Tomcat,访问solr测试分词器 ``