现在的位置: 首页 > 综合 > 正文

Solr连接数据库配置

2018年01月25日 ⁄ 综合 ⁄ 共 3550字 ⁄ 字号 评论关闭

 

Solr是基于Lucene的全文搜索服务器,
它是一个独立的企业级搜索应用服务器,它对外提供类似于Web-serviceAPI接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http
Get
操作提出查找请求,并得到XML格式的返回结果。

本文档介绍将Solr4.2.0部署到Tomcat6并连接数据库获取数据的方法。

一、            Solr部署

1.      下载Solr后并将其解压,为说明方便,Solr解压之后的目录在本文档中称为SOLRDISTDIR

2.      部署Solrwar

拷贝文件SOLRDISTDIR\dist\solr-4.2.0.war至CALALINEHOME\webapps之中。

注:CALALINEHOME为Tomcat的主目录。

3.      部署Solr的工作目录

    拷贝目录SOLRDISTDIR\example\solr至拟定的Solr工作目录。例如可以将其也拷入CALALINEHOME\webapps之中。拷贝完成的工作目录在本文档中称为SOLRWORK

Solr工作目录确定后,需要在Solr服务器的配置中进行指定。启动Tomcat,在solr-4.2.0.war被自动解开部署后,打开CALALINEHOME\webapps\solr-4.2.0\WEB-INF\web.xml文件,并修改值为solr/home的env-entry-name节点对应的env-entry-value。env-entry-value值需要被指定为Solr的工作目录,即SOLRWORK

例如针对前述工作目录,web.xml应做如下修改:

<env-entry>

      <env-entry-name>solr/home</env-entry-name>

      <env-entry-value>D:/apache-tomcat-6.0.35/webapps/solr</env-entry-value>

      <env-entry-type>java.lang.String</env-entry-type>

</env-entry>

重新启动Tomcat后,Solr已功部署,在浏览器中打开http://IP:8080/solr-4.2.0,可以看到Solr已经启动。

Solr界面

二、            Solr连接数据库

1.      修改solrconfig.xml配置

solrconfig.xml文件位于SOLRWORK\collection1\conf之下,为了连接数据库,需要在其中增加以下配置:

<config>

    
…...

<requestHandler name="/dataimport"class="org.apache.solr.handler.dataimport.DataImportHandler">  

   
    <lstname = "defaults">  

       
    <str name ="config">data-config.xml</str>  

   
    </lst>  

 
    </requestHandler> 

     ……

</config>

 

2.      增加数据库配置文件

在上述对solrconfig.xml配置的修改中,指定了通过文件data-config.xml配置数据库相关信息,因此需要在SOLRWORK\collection1\conf之下创建一个名为data-config.xml的配置文件,其具体内容类似如下:

<?xmlversion="1.0" encoding="UTF-8" ?>

<dataConfig>

 
<dataSourcetype="JdbcDataSource"

             
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"

             url="jdbc:sqlserver://10.10.108.243:1433;DatabaseName=lessonsys"

             
user="pms"

             
password="pms"/>

 
<document name="expert">

   
<entity name="expert"

           
query="SELECT id, a, b, c fromtableA"

           
deltaImportQuery=" SELECT id,a, b, c from tableA  WHERE id='${dataimporter.delta.id}'"

           
deltaQuery="select id from tableA where modifyDate >'${dataimporter.last_index_time}'"

           
>

           
<field column="id"name="id"/>

           
<field column="a"name="a/>

           
<field column="b"name="b"/>

           
<field column="c"name="c"/>

   
</entity>

 
</document>

</dataConfig>

3.      修改schema.xml配置

Solr要正常从数据库中获得数据还需要修改SOLRWORK\collection1\conf\schema.xml文件,主要是将我们期望能够被Solr处理的字段进行配置。例如针对以上data-config.xml中的配置,需要对应修改schema.xml如下:

<fields>

……

<field name="id" type="int"indexed="true" stored="true" required="true"multiValued="false"/>

  
<field name="a"type="string" indexed="true" stored="true"multiValued="true"/>

  
<field name="b"type="string" indexed="true" stored="true"multiValued="true"/>

  
<field name="c"type="string" indexed="true" stored="true"multiValued="true"/>

  
……

</fields>

 

4.      增加jar

在上述对配置文件solrconfig.xml的修改中使用到了DataImport(org.apache.solr.handler.dataimport.DataImportHandler),因此需要导入DataImport相关的jar包。

SOLRDISTDIR\dist\下的文件solr-dataimporthandler-4.2.0.jarsolr-dataimporthandler-extras-4.2.0.jar拷贝至CALALINEHOME\webapps\solr-4.2.0\WEB-INF\lib之下即可。

如果拷贝完成以后,系统不能正常运作,则可以尝试在solrconfig.xml中增加一条使用DataImportlib配置项,具体修改参考如下:

<config>

   
……

      
<libdir="D:/apache-tomcat-6.0.35/webapps/solr-4.2.0/WEB-INF/lib"regex="apache-solr-dataimporthandler-\d.*\.jar" />

 
  
……

</config>

三、            Solr自动更新索引

Solr默认情况下已经配置了自动更新索引,如果确需修改,可以在配置文件solrconfig.xml中修改autoCommit的配置。

<config>

……

<updateHandlerclass="solr.DirectUpdateHandler2">  

    <autoCommit>

      <maxTime>15000</maxTime>

      <openSearcher>true</openSearcher>

    </autoCommit>

</updateHandler>

……

</config>

 

欢迎访问梦断酒醒的博客http://www.yanzhijun.net点击此处订阅博客更新

抱歉!评论已关闭.