`

solr连接数据库配置

    博客分类:
  • solr
阅读更多

一般要搜索的信息都是被存储在数据库里面的,但是我们不能直接搜数据库,所以只有借助Solr将要搜索的信息在搜索服务器上进行索引,然后在客户端供客户使用。

一、链接数据库

1. SQL配置

拿SQL Server 为例,需要先下载Sql Server的jar包,下载地址:

http://msdn.microsoft.com/en-us/data/aa937724.aspx

解压缩之后将sqljdbc4.jar复制到webapps\solr\WEB-INF\lib下,也就是本例的:

D:\apache-tomcat-7.0.57\webapps\solr\WEB-INF\lib

2. 建立查询

然后在D:\apache-tomcat-7.0.57\webapps\solr\solr_home\collection1\conf下面新建一个配置文件:data-config.xml

然后在本目录下编辑配置文件:solrconfig.xml

找到很多个requestHandler节点,在最下面增加:

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport
.DataImportHandler"> 
    <lst name="defaults"> 
          <str name="config">D:\apache-tomcat-7.0.57\webapps\solr\solr_home\
collection1\conf\data-config.xml</str> 
    </lst> 
</requestHandler>

要配置的内容就是刚才新建文件的路径。

3. 将初次下载的solr-4.10.2文件夹下的dist, contrib文件夹复制到TomCat根目录下:


4. 然后再次修改刚才编辑过的solrconfig.xml增加两个文件夹的配置并修改一些参数:

大约在75行默认有8个路径,但是路径不一定全对,顺着这个配置的路径去找文件夹,根据查找的层数修改这个路径配置,另增加一个新的配置,全文如下:

复制代码
  <lib dir="../../../../../contrib/extraction/lib" regex=".*\.jar" />

  <lib dir="../../../../../dist/" regex="solr-cell-\d.*\.jar" />

  <lib dir="../../../../../contrib/clustering/lib/" regex=".*\.jar" />

  <lib dir="../../../../../dist/" regex="solr-clustering-\d.*\.jar" />

  <lib dir="../../../../../contrib/langid/lib/" regex=".*\.jar" />

  <lib dir="../../../../../dist/" regex="solr-langid-\d.*\.jar" />

  <lib dir="../../../../../contrib/velocity/lib" regex=".*\.jar" />

  <lib dir="../../../../../dist/" regex="solr-velocity-\d.*\.jar" />

  <lib dir="../../../../../dist/" regex="solr-dataimporthandler-\d.*\.jar" />
复制代码

这个配置是根据本机推导出来的,大家根据自己的实际情况去修改。

5. 将dist文件夹下的



 

复制到webapps\solr\WEB-INF\lib下。

6. 然后编辑

D:\apache-tomcat-7.0.57\webapps\solr\solr_home\collection1\conf\data-confing.xml文件,以本机MyBookShop数据库的Books表为例



 

配置如下:

复制代码
<?xml version="1.0" encoding="UTF8"?> 
<dataConfig>
    <dataSource driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
  url="jdbc:sqlserver://localhost:1433;DatabaseName=MyBookShop" user="sa" password="111"/>
    <document name="Info" pk="id">
        <entity name="zpxx"  transformer="ClobTransformer" pk="id"
                 query="SELECT  [ID],[Title] as name  FROM [MyBookShop].[dbo].[Books]"       
                 deltaImportQuery="SELECT  [Id],[Title] as name  FROM
 [MyBookShop].[dbo].[Books] where [PublishDate] > '${dataimporter.last_index_time}'"   
                 deltaQuery="SELECT  id FROM [MyBookShop].[dbo].[Books] where 
 [PublishDate] > '${dataimporter.last_index_time}'">            
                    <field column="id"      name="id"      /> 
                    <field column="name"      name="name"      /> 
         </entity>
    </document>
</dataConfig>
复制代码

此配置千万注意。

上述配置说明如下:

     query是获取全部数据的SQL(solr从sql中获取那些数据),多列

     deltaImportQuery是获取增量数据时使用的SQL(数据库新增数据追加到solr的数据),多列

     deltaQuery是获取pk的SQL(数据库新增数据是,追加到solr的数据时的条件,根据id ,条件是最后一次获取的时间,${dataimporter.last_index_time,最后获取的时间}),一列

保证SQL SERVER配置了外网访问即可。

配置到此基本结束。

二、建立索引

启动Solr,删除全部索引数据:

http://localhost:8080/solr/update/?stream.body=<delete><query>*:*</query></delete>&stream.contentType=text/xml;charset=utf-8&commit=true

 

http://127.0.0.1:8080/solr-4.8.1/update/?stream.body=<delete><query>*:*</query></delete>&stream.contentType=text/xml;charset=utf-8&commit=true

停掉Solr,检查下是不是清空了:



 
 

开始创建新的索引,浏览器执行方式:

终止跑索引:http://localhost:8080/solr/collection1/dataimport?command=abort

开始索引:http://localhost:8080/solr/collection1/dataimport?command=full-import

增量索引 :http://localhost:8080/solr/collection1/dataimport?command=delta-import

建议学习时使用UI的方式进行更新,能看清运行过程:



 

需要等执行结束,可以点击【Refrush status】看结果:

Indexing completed. Added/Updated: 1076 documents. Deleted 0 documents. (Duration: 03s)

表示结束。

然后点击左边的查询检验索引结果:



 

出现查询结果表示创建成功。

三、更新索引、增加索引、删除索引

1. 更新数据:

我们先来搜索一个关键字“土豆”,这里全是计算机图书,不应该有土豆的。



 然后将其中一个书籍的标题更新为“论土豆的栽培技术”



 不更新索引是搜不到的。


 

执行增量更新:

 

http://localhost:8080/solr/dataimport?command=delta-import&clean=false&commit=true

 

然后去查询:

 


 

已经可以查询得到了。

 

2. 新增一个数据:“论苹果的艺术”

 

复制代码
insert into [MyBookShop].[dbo].[Books]

(

[Title]
,[Author]
,[PublishDate]
,[WordsCount]
,[UnitPrice]
,[ContentDescription]
,[AurhorDescription]
,[EditorComment]
,[TOC]
)
SELECT '论苹果的艺术'
,[Author]
,[PublishDate]
,[WordsCount]
,[UnitPrice]
,[ContentDescription]
,[AurhorDescription]
,[EditorComment]
,[TOC]
FROM [MyBookShop].[dbo].[Books] where id=4942
复制代码

 

新增结果如下: 

 


 

 

然后执行增量索引:

 

http://localhost:8080/solr/dataimport?command=delta-import&clean=false&commit=true

 

再查询:

 



 

 

发现新结果被查询出来了。

 

3. 删除数据

 

  将苹果这条数据删除掉,仍然能够查询出来,执行单条索引删除:

 

7168&stream.contentType=text/xml;charset=utf-8&commit=true">http://localhost:8080/solr/update/?stream.body=<delete><id>7168</id></delete>&stream.contentType=text/xml;charset=utf-8&commit=true

 

再次查询就查不到了:

 



数据库下载 

 

 

 

 

 

 

 

  • 大小: 12.9 KB
  • 大小: 2.2 KB
  • 大小: 7.7 KB
  • 大小: 43.3 KB
  • 大小: 56.9 KB
  • 大小: 93.2 KB
  • 大小: 10.9 KB
  • 大小: 69.1 KB
  • 大小: 9.7 KB
  • 大小: 29.7 KB
  • 大小: 64 KB
  • 大小: 13.7 KB
  • 大小: 10.2 KB
分享到:
评论

相关推荐

    solr同步数据库需要jar包

    1. **数据库连接**:使用JDBC(Java Database Connectivity)驱动,通过配置数据库连接参数(如URL、用户名、密码),建立Solr与数据库的连接。 2. **数据变更检测**:可以使用数据库的触发器或者日志分析,如MySQL...

    solr在tomcat下的搭建和配置数据库

    #### 二、Solr如何连接数据库 **步骤1:准备数据库驱动** - 将Oracle的驱动`ojdbc.jar`拷贝到`tomcat\webapps\solr\WEB-INF\lib`目录下。 **步骤2:配置Solr与数据库的连接** - 从`solr-4.3.0\example\multicore...

    Solr数据库连接[SQL,Oracle]

    在Solr中,你可以通过以下步骤配置SQL Server连接: 1. 将`sqljdbc4.jar`放入Solr的`lib`目录下,这样Solr服务器启动时会自动加载该驱动。 2. 编写一个数据导入处理器(Data Import Handler, DIH)的配置文件,通常...

    Solr数据库插入(全量和增量)索引

    我们还需要定义数据源,例如 Oracle 数据库的连接信息。最后,我们需要定义索引更新策略,例如全量索引或增量索引。 测试结果 在本文中,我们使用 Solr 3.6.2 版本,在 Linux 5.2 操作系统上进行测试。我们使用 ...

    solr所需配置文件

    它包含了数据库连接信息、SQL查询、实体和字段映射等配置。 5. **solrcloud-config**: 当Solr运行在SolrCloud模式下,这个配置文件包含集群和集合的设置。比如,它定义了ZooKeeper的位置、Shard的数量、Replication...

    图解Solr5.3.1与MySQL配置【原创】

    在本文中,我们将详细介绍如何配置Solr 5.3.1与MySQL数据库的集成,以便实现高效的数据搜索功能。Solr是一款高性能、可伸缩的企业级搜索引擎,它是Apache Lucene的分布式应用实例,广泛应用于各种需要全文搜索的应用...

    solr-7.7.3配置详解,跟springboot整合 (二)

    2. **配置Solr连接** - 在`application.properties`中配置Solr服务器地址: ``` spring.data.solr.host=http://localhost:8983/solr ``` 3. **定义SolrRepository** - 创建接口,继承`SolrCrudRepository`,...

    solr定时自动同步数据库需要用到的apache-solr-dataimportscheduler.jar包

    这意味着在连接数据库时,可以提供用户名和密码进行身份验证,确保安全性。认证的格式是`user_pwd=user:password`,这里的`user`是数据库的用户名,`password`是对应的密码。这种增强的安全措施对于那些包含敏感数据...

    solr4.7从数据库导数据[归类].pdf

    在这个教程中,我们将深入理解如何在 Solr 4.7 中设置和配置 DIH,以便从 SQL Server 2005 数据库导入数据。 首先,你需要准备必要的 JAR 包。Solr 4.7.0 发布包中包含了 `solr-dataimporthandler-extras-4.7.0.jar...

    我的配置成功的solr8+tomcat.zip

    以上便是关于“我的配置成功的solr8+tomcat.zip”的主要内容,这个压缩包可能包含了Solr8、Tomcat9的安装文件,数据库连接配置示例,IK分词器的库文件,以及相关的配置文件,供用户参考和使用。通过这些步骤,用户...

    solr所需资源下载(数据导入、分词器、数据库连接jar、配置文件、managed-schema)

    包括solr的所有资源文件文件清单如下: IKAnalyzer.cfg.xml ik-analyzer-solr5-5.x.jar solr-analyzer-ik-5.1.0.jar managed-schema mysql-connector-java-5.1.7-bin.jar solrconfig.xml data-config.xml ext.dic ...

    跟益达学Solr5之从MySQL数据库导入数据并索引

    - **数据源配置**:定义要导入的数据库表,以及映射到Solr字段的列。 3. **数据导入过程** - **Full Import**:全量导入,将数据库中的所有数据一次性导入到Solr索r。 - **Delta Import**:增量导入,只导入自...

    Solr配置入门教程

    Solr配置入门教程主要涉及如何将数据从MySQL数据库和XML文件导入到Solr索引中。以下是详细步骤和相关知识点: 1. **下载与解压Solr**:首先需要从官方源获取Apache Solr的最新版本,并将其解压缩到一个合适的文件夹...

    Solr定时更新Solr定时更新

    `dataimport.properties` 文件可能是配置文件,用于设置DIH的相关参数,如数据源连接信息、导入策略、定时任务的频率等。 在配置定时更新时,首先需要在Solr的`solrconfig.xml`配置文件中启用DIH,并定义数据源和...

    solr6.5.1定时增量apache-solr-dataimportscheduler

    `solr-dataimporthandler-extras-6.5.1.jar` 包含了DIH的额外组件和功能,例如支持更多类型的数据库连接器、处理复杂的数据结构等。这些额外的功能使得DIH能够处理更广泛的业务需求,增强了Solr与外部数据源集成的...

    solr配置放啊

    - `url`属性定义了连接数据库的URL。 - `user`和`password`分别指定了数据库登录用户名和密码。 #### 四、数据导入配置 数据导入配置是Solr配置中的另一个核心部分,它定义了如何从数据源中读取数据并将其导入Solr...

    solr京东案例包括项目资料和数据库

    可能涵盖的话题有数据库连接池的配置、事务管理以及数据库与Solr之间的数据同步策略。 综上所述,"solr京东案例"提供了深入学习Solr在电商环境中实际应用的机会,涵盖了从基础设置到高级特性的方方面面,对于理解...

Global site tag (gtag.js) - Google Analytics