Solr连接数据库配置

标签: solr 数据库 | 发表时间:2013-05-04 14:54 | 作者:ishallwin
出处:http://blog.csdn.net

 

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

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

一、            Solr部署

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

2.      部署Solr的war包

拷贝文件 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.jar及solr-dataimporthandler-extras-4.2.0.jar拷贝至 CALALINEHOME\webapps\solr-4.2.0\WEB-INF\lib之下即可。

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

<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点击此处订阅博客更新

作者:ishallwin 发表于2013-5-4 14:54:51 原文链接
阅读:0 评论:0 查看评论

相关 [solr 数据库] 推荐:

Solr连接数据库配置

- - CSDN博客推荐文章
Solr是基于Lucene的全文搜索服务器, 它是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口. 用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果. 本文档介绍将Solr4.2.0部署到Tomcat6并连接数据库获取数据的方法.

Solr从数据库导入数据

- - CSDN博客互联网推荐文章
一. 数据导入(DataImportHandler-DIH). DIH 是solr 提供的一种针对数据库、xml/HTTP、富文本对象导入到solr 索引库的工具包. apache-solr-dataimportscheduler-1.1.jar(增量导入使用). 数据库对应的jdbc驱动包这里使用的是Oracle oracle10g.ja放入Tomcat6.0.36/webapps/sol/WEB-INF/lib 中.

Solr之Mysql数据库全量、增量同步-yellowcong

- - CSDN博客编程语言推荐文章
1 修改solrconfig.xml. 修改solrconfig.xml 文件. 2 创建data-config.xml. 在solrconfig.xml的同级目录下创建data-config.xml文件,配置数据库连接和Solr与mysql数据的对应关系和查询语句. 使用的是Mysql测试的,我的oracle完犊子了.

Solr SpellCheck 应用

- - 开源软件 - ITeye博客
通过对各类型的SpellCheck组件学习,完成项目拼写检查功能. 本文使用基于拼写词典的实现方式,solr版本为5.3.0. SpellCheck 简述. 拼写检查是对用户错误输入,响应正确的检查建议. 比如输入:周杰轮,响应:你是不是想找 周杰伦. Solr的拼写检查大致可分为两类,基于词典与基于Solr索引.

Solr DocValues详解

- - 企业架构 - ITeye博客
什么是docValues. docValues是一种记录doc字段值的一种形式,在例如在结果排序和统计Facet查询时,需要通过docid取字段值的场景下是非常高效的. 为什么要使用docValues. 这种形式比老版本中利用fieldCache来实现正排查找更加高效,更加节省内存. 倒排索引将字段内存切分成一个term列表,每个term都对应着一个docid列表,这样一种结构使得查询能够非常快速,因为term对应的docid是现成就有的.

solr的使用

- - Web前端 - ITeye博客
solr的原理不和大家一一讲述,主要讲solr在使用过程中的注意事项.  首先是安装solr,安装步骤省略. (不要说我懒,安装步骤导出都是. 成功之后 需要在solr里面建立一个针对你的业务的服务,我想建立一个叫做discuz的服务. 然后你在你的solr目录 :solr-5.5.3/server/solr/  下看见了discuz   ,这是你刚刚创建的,针对某一业务的整个搜索配置都是在这个目录下配置的.

Solr调优参考

- - 淘宝网通用产品团队博客
共整理三部分,第一部分Solr常规处理,第二部分针对性性处理,前者比较通用,后者有局限性. 务必根据具体应用特性,具体调节参数,对比性能. 具体应用需要全面去把控,各个因素一起起作用. 第一部分. E文连接 http://wiki.apache.org/solr/SolrPerformanceFactors.

Solr之缓存篇

- - 淘宝网综合业务平台团队博客
Solr在Lucene之上开发了很多Cache功能,从目前提供的Cache类型有:. 而每种Cache针对具体的查询请求进行对应的Cache. 本文将从几个方面来阐述上述几种Cache在Solr的运用,具体如下:. (1)Cache的生命周期. (2)Cache的使用场景. (3)Cache的配置介绍.

Solr主从备份

- - 研发管理 - ITeye博客
SOLR复制模式,是一种在分布式环境下用于同步主从服务器的一种实现方式,因之前提到的基于rsync的SOLR不同方式部署成本过高,被SOLR1.4版本所替换,取而代之的就是基于HTTP协议的索引文件传输机制,该方式部署简单,只需配置一个文件即可. 以下讲解具体操作步骤: . 步骤分主服务器和从服务器,允许有多个从服务器,即从服务器的配置一样.

solr相似匹配

- - CSDN博客推荐文章
相似匹配   在我们使用网页搜索时,会注意到每一个结果都包含一个 “相似页面” 链接,单击该链接,就会发布另一个搜索请求,查找出与起初结果类似的文档. Solr 使用 MoreLikeThisComponent(MLT)和 MoreLikeThisHandler 实现了一样的功能. 如上所述,MLT 是与标准 SolrRequestHandler 集成在一起的;MoreLikeThisHandler 与 MLT 结合在一起,并添加了一些其他选项,但它要求发布一个单一的请求.