`

Apache Solr 实践(二)数据库增量导入

    博客分类:
  • Solr
 
阅读更多

之前将Solr的基础环境搭建了起来。今天配置一下数据库的增量导入。实现步骤wiki上面写的已经很清楚,主要注意两点,一是索引的中文分词,二是自定义字段。solr自带的schema.xml中已经配置了常用字段,遇不包含字段需要定义。依wiki,实现solr索引定时增量导入大致需五步。

第一步,配置requesthandler于solrconfig.xml内容如下

  <requestHandler name="/dataimport" 
      class="org.apache.solr.handler.dataimport.DataImportHandler">
      <lst name="defaults">
        <str name="config">./data-config.xml</str>
      </lst>
  </requestHandler>

用到的jar包solr-dataimporthandler-4.3.0.jar位于solr-4.3.0\dist,需要拷贝到tomcat/webapps/lib下。

第二步,编写data-config.xml和dataimport.properties。solr发布包中随带了一个demo位于solr-4.3.0\example\example-DIH\solr\db\conf直接拿来稍作修改

<dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver" 
		url="jdbc:mysql://localhost:3306/solr_import" user="root" password="admin"/>
    <document>
        <entity name="item" query="select * from item"
                deltaQuery="select id from item where last_modified > '${dataimporter.last_index_time}'">
            <field column="ID" name="id" />
            <field column="NAME" name="name" />
            <field column="MANU" name="manu" />
            <field column="WEIGHT" name="weight" />
            <field column="PRICE" name="price" />
            <field column="POPULARITY" name="popularity" />
            <field column="INSTOCK" name="inStock" />
            <field column="INCLUDES" name="includes" />

            <entity name="feature"  
                    query="select DESCRIPTION from FEATURE where ITEM_ID='${item.ID}'"
                    deltaQuery="select ITEM_ID from FEATURE 
						where last_modified > '${dataimporter.last_index_time}'"
                    parentDeltaQuery="select ID from item where ID=${feature.ITEM_ID}">
                <field name="features" column="DESCRIPTION" />
            </entity>
            
            <entity name="item_category"
                    query="select CATEGORY_ID from item_category where ITEM_ID='${item.ID}'"
                    deltaQuery="select ITEM_ID, CATEGORY_ID from 
						item_category where last_modified > '${dataimporter.last_index_time}'"
                    parentDeltaQuery="select ID from item where ID=${item_category.ITEM_ID}">
                <entity name="category"
                        query="select DESCRIPTION from category where ID = '${item_category.CATEGORY_ID}'"
                        deltaQuery="select ID from category where last_modified > '${dataimporter.last_index_time}'"
                        parentDeltaQuery="select ITEM_ID, CATEGORY_ID 
							from item_category where CATEGORY_ID=${category.ID}">
                    <field column="description" name="cat" />
                </entity>
            </entity>
        </entity>
    </document>
</dataConfig>

 

#Fri Jan 17 11:44:56 CST 2014
interval=1
port=80
server=localhost
params=/dataimport?command\=delta-import&clean\=false&commit\=true
webapp=solr
reBuildIndexInterval=2
dataimporter.last_index_time=1914-01-14 17\:40\:00
syncEnabled=1
last_index_time=2014-01-17 11\:44\:55
item.last_index_time=2014-01-17 11\:44\:55
reBuildIndexParams=/dataimport?command\=full-import&clean\=true&commit\=true
reBuildIndexBeginTime=03\:10\:00
syncCores=collection1

第三步,修改schema.xml支持中文分词。data-config.xml中filed引用schema.xml中的filedType,而schema.xml中name,manu等字段类行为text_general,需要改为之前配置的text_zh.

 

第四步建数据库,数据库脚本也都是现成的,位于solr-4.3.0\example\example-DIH\hsqldb\ex.script。demo是基于sqldb的,稍作修改即可用于mysql。将数据库驱动拷到lib。insert N笔数据(中文)作为测试。

 

第五步,建索引。依次打开solr控制台-——>dataimport,command首次选full-import,勾选commit,Entity选择item——>execute。

索引结果如何?在solr控制台左侧选择Query,q填写name:关键字,execute query。效果如图

 

 

 

 

 

 

 

 

 

  • 大小: 24 KB
分享到:
评论

相关推荐

    solr6 增量导入demo

    增量导入是针对大型数据集优化的一种策略,当数据库中的数据发生变化时,Solr并不需要重新导入所有数据,而是仅仅导入那些新增或修改过的记录。这大大减少了索引时间和存储空间的需求。 二、实现机制 1. ...

    solr增量更新架包apache-solr-dataimportscheduler.jar

    2. **增量导入**:增量导入只导入自上次导入以来发生变化的数据。Solr通过跟踪数据源中的“lastModified”或者其他时间戳字段来识别新数据或已修改的数据。这样可以显著减少索引时间和资源使用。 "apache-solr-...

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

    它支持全量导入和增量导入,全量导入是重新导入所有数据,而增量导入则只导入自上次导入以来发生改变的数据,这样可以大大提高效率。 `solr-dataimporthandler-extras-6.5.1.jar` 包含了DIH的额外组件和功能,例如...

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

    - **Delta Import**:增量导入,只导入自上次导入以来数据库中发生变化的数据。 4. **数据分析与预处理** - **分析器(Analyzer)**:Solr使用分析器对输入文本进行分词、过滤和标准化,以便进行精确匹配。 - **...

    solr5.4.0以上使用的apache-solr-dataimportscheduler

    7. **性能优化**:在大型数据集上,考虑优化DataImportScheduler的性能,如分批导入、增量导入以及并行处理等策略,以提高索引构建的速度。 8. **版本兼容性**:虽然这里提到的是与Solr 5.4.0的兼容性,但...

    solr运行配置与数据库数据导入到solr

    Solr还支持增量导入、delta-import等其他模式。 10. **处理中文字符**:如果处理中文数据,需要在Tomcat的`server.xml`中设置URI编码为UTF-8,例如: ```xml ``` 11. **添加中文分词器**:如需使用中文分词,...

    apache-solr-dataimportschedulers.jar

    4. 配置灵活性:数据导入调度器支持多种配置方式,可以根据实际需求选择合适的策略,如全量导入、增量导入、基于时间戳的增量更新等。 5. 日志记录与错误处理:在执行过程中,调度器会记录详细的执行日志,便于排查...

    apache-solr-dataimportscheduler

    DIH 支持全量导入和增量导入,全量导入会将整个数据源重新导入,而增量导入只导入自上次导入以来发生改变的数据,这对于实时数据更新非常重要。 Apache Solr DataImportScheduler 插件就是在 DIH 的基础上增加了...

    solr定时增量更新jar包1.4

    "solr定时增量更新jar包1.4"是专门为Solr设计的一个组件,它允许用户设置定时任务来自动检测和导入新的或者修改过的数据,从而保持索引与数据库或其他数据源的一致性。 这个组件主要依赖于`apache-solr-...

    solr-dataimportscheduler-1.4.jar 增量定时同步数据到solr.rar

    DIH支持全量导入和增量导入,这使得Solr可以保持与数据库的实时同步,从而提供最新的搜索结果。 1. **DataImportHandler (DIH)**: DIH是Solr的一个核心特性,允许开发者定义数据源、数据转换和数据加载过程。它通过...

    跟益达学Solr5之增量索引MySQL数据库表数据

    本教程以"跟益达学Solr5之增量索引MySQL数据库表数据"为主题,旨在教授如何利用Solr5来实现对MySQL数据库表数据的增量索引,以便在海量数据中快速检索。 首先,我们需要了解Solr的基本架构。Solr运行在Jetty服务器...

    apache-solr-dataimporthandler-extras-1.4.0.jar.zip

    DataImportHandler是Apache Solr的一个特性,它允许Solr从外部数据源导入数据,如数据库、文件系统或其他Web服务。DIH的主要目的是简化索引过程,使Solr能够动态地、增量地更新其索引,而无需每次变更都完全重建索引...

    solr-dataimportscheduler-1.1.jar

    Solr 数据导入调度器(Solr DataImportScheduler)是一个用于 Apache Solr 的插件,它允许用户设置定期的、自动的数据导入任务。标题中的 "solr-dataimportscheduler-1.1.jar" 指的是该插件的一个特定版本,即1.1版...

    solr-dataimport-scheduler

    DIH支持全量导入和增量导入,使得在数据发生变化时,Solr能够快速反映这些变化。 Solr-dataimport-scheduler扩展了DIH的功能,增加了定时任务的管理。这意味着用户不再需要手动触发数据导入,而是可以设置定时规则...

    solr5.3.1 导入mysql数据

    4. **增量导入和 delta-import**: 如果数据源有实时更新,可以使用增量导入功能只导入自上次导入以来发生变化的记录,提高效率。 在实际应用中,我们还需要关注性能优化、安全性、集群部署等方面。例如,可以通过...

    solr-8.2.0.rar

    本实践教程将指导你如何整合MySQL数据库与Solr 8.2.0,实现数据的高效检索。 一、安装与部署Solr 8.2.0 首先,你需要从官方源下载Solr 8.2.0的压缩包`solr-8.2.0.rar`,解压后得到包含`bin`、`server`等目录的完整...

    solr-dataimport-scheduler.jar 可使用于solr7.x版本

    除了全量导入,DIH还支持增量导入,仅更新自上次导入以来发生改变的数据。这通常通过跟踪数据库的最后修改时间或类似机制来实现,从而提高效率并减少不必要的资源消耗。 总的来说,solr-dataimport-scheduler.jar是...

    Solr操作说明文档

    Solr 的增量数据导入主要是指将数据库中的增量数据导入到 Solr 中。 Solr 文件数据导入 Solr 的文件数据导入主要是指将文件中的数据导入到 Solr 中。 Solr 文件主键解决方案 Solr 的文件主键解决方案主要是指...

    solr-dataimportscheduler-1.1.1.jar

    Solr-dataimportscheduler-1.1.1.jar 是一个针对Apache Solr的扩展插件,主要功能是实现数据的增量导入。Apache Solr是一个流行的开源全文搜索引擎,它提供了高效的搜索和索引能力,广泛应用于网站内容检索、产品...

Global site tag (gtag.js) - Google Analytics