快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

Apache Solr单机环境配置(包括中文分词和Java API的使用)

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

项目中需要实现一个地址查询框,类似于在谷歌地图中输入地址,根据定义的规则实时检索并展现匹配的地址的功能(当然比那简单的多),为了减小数据库压力和提高检索效率,现采用apache solr实现。由于对性能和可靠性可用性等没太高的要求,所以此处没有考虑集群,只是一个简单的单机版环境。

1、下载solr-4.10.2.zip,解压得到solr-4.10.2目录

2、将solr-4.10.2\example下的solr目录拷贝出来作为SOLR_HOME(即配各个collection配置和数据存储的目录),此处拷贝到C:\Users\jiayu\Desktop\solr\下并重命名为solr_home

3、将solr-4.10.2\dist下的solr-4.10.2.war拷贝到tomcat的webapps目录下,启动tomcat后会自动解压,然后此war包即可删除,解压后默认目录名称为solr-4.10.2,为方便此处将其名称改为solr,然后在tomcat\webapps\solr\META-INF下创建context.xml(tomcat配置:可在tomcat的\conf\Catalina\localhost目录下创建与应用上下文同名的xml文件或在应用上下文的META-INF目录下创建context.xml),xml内容如下:


4、启动tomcat,此时会发现报出来一个错误:Error filterStart,查看tomcat日志:localhost.log,报缺少slf4j包,将solr-4.10.2\example\lib\ext下的所有jar包(此处没有校验具体需要哪个)拷贝到solr/WEB-INF/lib目录下,同时在WEB-INF下建立classes目录,建立log4j.properties文件,内容如下


重新启动,访问localhost:8080/solr/admin.html,出现如下界面说明启动成功

配置中文分词

下载IKAnalyzer2012FF_u1.jar,并放在solr/WEB-INF/lib目录下

编辑solr_home/collection1/conf目录下的scheme.xml文件,添加如下内容:



标明quesContent字段的分词由中文分词器去完成,打开solr管理页面,选择collection1(core selector),要分词的字段选择刚配置的quesContent,输入一段中文,点击分析,可看到分词效果

至此,配置工作完成,下面介绍一下如何从数据库导入数据,和如何利用它提供的javaAPI插入和查询数据

将solr-4.10.2\dist目录下的solr-dataimporthandler-4.10.2.jar和solr-dataimporthandler-extras-4.10.2.jar拷贝到solr应用程序的WEB-INF/lib目录下,由于此处是从ORACLE中导入数据,还要将Oracle驱动oracle6.jar拷贝到lib下

在solr_home目录/collection1/conf下创建data-config.xml,内容如下


在/collection1/conf/solrconfig.xml中添加


启动后,登录solr管理界面,选择collection1,选择Dataimport选项,点击Execute按钮,如果配置无误的话数据便可导入进来

为了保证数据库中数据和solr中的数据同步,采用定时任务,每隔一段时间通过API调用,将数据库中数据同步到solr中。由于地址表中存放着各个公司的数据,在同步时,需要将数据按公司分开存放,所以对于每个公司的地址信息,单独创建一个core,在solr_home下有一个配置好的default_core目录,在插入地址时,判断如果此条地址的公司(比如country01)还没有对应的core,将创建目录country01,同时将default_core中的配置信息拷贝到country01中。

以下为完整代码:






solr wiki http://wiki.apache.org/solr/Solrj

Apache
Solr 4.5.1环境搭建及MYSQL数据导入http://blog.csdn.net/weijonathan/article/details/16961299

Spring Data Solrhttp://docs.spring.io/spring-data/data-solr/docs/current/reference/html/

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1922638