0 0

lucene怎样在做增量索引的同时更新旧数据?5

现在的项目要求做近实时索引,大约15分钟更行一次。数据会不断新增,而旧数据也会经常被修改。我计划用增量索引来做,根据数据库的更新时间来添加文档。但被更新的文档可能索引里已经有了,添加之后数据可能会重复。

请问如何消除这种重复的可能性,是每添加一个document时都先查一下索引里是不是已经有,还是记录数据库所有的修改操作并将id放到队列里,跑索引的时候一起更新?请问lucene有没有更好的内部机制解决这个问题,比如能不能像数据库一样指定unique的字段?
2013年5月06日 14:20

1个答案 按时间排序 按投票排序

0 0

采纳的答案

方案1: 你修改的数据 加一个触发器 如果你要索引的字段被改动后
把id插入另一张表里 然后跑定时任务 根据这些ID查找出要索引的数据 定时的构建索引 然后再把这些IDdelete掉

方案2: 用solr 数据更新量不是太大的话 修改了数据可以实时请求solr
查询也可以用solr提供的api 数据更新量太大了 还是定时请求solr

2013年5月06日 23:13

相关推荐

    基于lucene技术的增量索引

    本文将深入探讨如何利用Lucene实现增量索引,这是一种在数据库或文件系统更新时仅对新数据或变化数据进行索引的技术,以降低资源消耗并保持搜索性能。 **1. Lucene基础知识** Lucene首先需要理解的是它的核心概念,...

    Lucene5学习之增量索引(Zoie)

    在实际应用中,每当有新的person数据插入或更新时,Zoie会监控到这些变化,然后对这些数据进行增量索引,确保索引始终保持最新状态。 总结起来,Lucene5学习之增量索引(Zoie)涉及到的关键技术点包括: 1. 基于...

    lucene分词搜索,增量索引及全量索引

    在Lucene中,可以通过监控数据源的变化来实现增量索引。例如,可以设置监听数据库的触发器,当有新记录插入或更新时,调用Lucene的IndexWriter添加或更新文档。IndexWriter提供了如addDocument()和updateDocument()...

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

    增量索引是指将新添加或更新的数据插入 Solr 索引库中,一般用于批量更新数据的情况。在这种情况下,我们需要将新添加或更新的数据从数据源中提取出来,然后将其插入 Solr 索引库中。增量索引的优点是可以实时地更新...

    solr增量导入更新索引包

    增量导入更新索引包是Solr中的一项重要功能,它允许系统仅处理自上次完整索引以来发生改变的数据,从而大大提升了效率并降低了资源消耗。下面将详细阐述Solr增量更新的相关知识点。 1. **Solr的索引机制** Solr...

    lucene索引结构原理.docx

    - **索引构建**:Lucene支持增量索引和批量索引,可以处理数据源的小幅变化或大规模数据。数据库通常需要全量重建索引,尤其是在数据发生变化时。 - **结果输出**:数据库查询返回RecordSet,而Lucene查询返回Hits...

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

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

    lucene实现索引查询

    传入分词器、目录和布尔值,其中布尔值表示是否要创建全新的索引或进行增量更新。 4. **构建Document对象**:每个Document对象代表一个待索引的记录。你可以添加多个Field对象到Document中,每个Field对应记录的一...

    基于Lucene的分布式并行索引.pdf

    除了倒排索引,Lucene还支持增量索引,这意味着可以只对文档的更改部分进行索引更新,而不是重新对整个文档集进行索引,从而节省资源并提高效率。 然而,尽管Lucene提供了强大的索引能力,但在实际应用中,随着索引...

    lucene.net实例

    增量索引是指在已有索引的基础上,仅对新添加或修改的数据进行索引更新,而无需重新构建整个索引。这对于大数据量的场景尤其重要,避免了全量索引可能导致的长时间阻塞。在 Lucene.NET 中,可以通过 IndexWriter 类...

    增量索引2

    根据提供的文件信息,本文将重点解析“增量索引”这一概念及其在Lucene中的应用,并结合其他相关知识点进行深入探讨。 ### 增量索引概述 #### 1. 定义与背景 增量索引是指在现有索引的基础上,只对新增或更新的...

    Lucene.net建立索引,检索分页Demo

    - 增量索引:当新数据到来时,无需重新构建整个索引,而是使用 IndexWriter 的 UpdateDocument 或 AddDocument 方法更新已存在的索引。 - 倒排索引:Lucene 使用倒排索引来加速搜索,每个词项对应一组包含它的文档...

    lucene搜索引擎项目

    Lucene支持增量索引,意味着可以对新的或已更改的数据进行实时更新。索引优化则是一次性合并多个段(segments)的过程,以提高搜索性能。 5. **搜索结果相关性** Lucene通过TF-IDF(Term Frequency-Inverse ...

    基于Lucene的超强配置式索引应用

    另外,可以利用Lucene的近实时搜索特性,通过NRTManager(Near Real Time Search Manager)实现快速的增量索引和查询。 除了上述基础配置,还可以扩展Lucene的功能,如使用Filter进行结果过滤,使用Highlighter高亮...

    Lucene与关系型数据库对比

    Lucene通过建立反向索引,并支持增量索引,极大地提高了索引效率。此外,用户还可以通过控制哪些字段需要索引,哪些字段无需索引,以及是否需要对索引字段进行分词处理,来优化索引策略。 ### 关系型数据库:事务...

    利用Lucene.NET建立SQL数据库记录索引文件程序C#源代码(包含数据库结构)

    对初学使用dotlucent作站内检索的比较有帮助。 利用dotlucene为网站做的索引文件的应用程序。 数据库源是SQL Server,项目是...应用程序界面可以配置数据库链接,生成报告,定时执行增量索引,对单条索引进行更新操作。

    Lucene 课件

    在索引更新方面,Lucene采用了创新的增量索引策略,通过不断地创建新索引文件并定期合并,避免了因单个大索引文件更新导致的大量IO操作。这种设计提高了索引效率,同时保持了搜索性能的稳定。 总的来说,Lucene是一...

    lucene讲义 叫你用lucene算法

    当索引不断增长时,Lucene采用增量算法进行索引的合并。合并因子(Merge Factor)是一个关键参数,它决定了多少个较小的段会被合并成一个较大的段。例如,如果合并因子b=3,那么当栈顶有b个大小为size的索引时,就会将...

    lucene索引

    4. **实时性需求**:如果应用需要实时更新索引,需要考虑增量索引和实时搜索的实现,确保新添加的数据能快速被搜索到。 5. **中文处理**:中文的分词难度较大,需要选择合适的分词器,并处理好词性的识别和词语的...

    基于Lucene的搜索策略研究

    - **数据经常需要更新但数据量不大**:对于此类情况,可以采用增量更新的方式,即只对新增或修改的部分进行索引更新,而不是重建整个索引,这样可以显著减少索引建立的时间。 - **数据经常需要更新且数据量巨大**...

Global site tag (gtag.js) - Google Analytics