`
lusanxiong
  • 浏览: 20264 次
社区版块
存档分类
最新评论

lucene 多线程下创建大数据索引文件 效率问题

阅读更多

应用场景:
需查询数据库(1000W条数据的表),然后将查询出来的数据放入lucene索引文件中.

我的方案:
采用多线程去查询数据库,每个线程负责查询一个区间的数据(如:1W条),每个线程查询完之后创建一个索引文件,最后把这些小的索引文件
合并.

实施步骤:
创建了一个线程池,初始化500个线程,每个线程分配的任务是到数据库查询1W条记录(单线程环境下查询1W条数据花费5分钟)
直到1000W条数据全部查完.数据库连接池设了150个连接.

测试结果:
记录数量  花费时间 线程数量 单个线程查询的记录数
1W        75S       50       200
10W       11分钟    100      1000
10W       11分钟    200      500
100W      114分钟   1000     1000

经测试,效率瓶颈应该在多线程查询数据库上面,如何提高多线程查询数据库的效率了.

请问大家有没有更好的方案提高 来完成这个需求(只要考虑效率高就OK,它是一个后台程序)
分享到:
评论

相关推荐

    lucene并行索引

    综上所述,基于Lucene的分布式并行索引技术是解决大数据环境下高效索引构建问题的有效手段。通过采用内存缓冲机制、分布式处理和智能合并策略等关键技术,不仅可以显著提升索引构建的速度,还能有效改善用户体验。...

    lucene与sqlserver数据库实现索引的简单实例

    在实际应用中,可能还需要考虑如错误处理、性能优化、多线程索引、分布式搜索等高级话题。同时,为了简化开发流程,有一些第三方库如Solr和Elasticsearch提供了更高级的管理和部署功能,它们基于Lucene,提供了更...

    最新版windows lucene-8.6.0.zip

    同时,对多线程支持进行了改进,提高了并发环境下的处理能力。 2. 新的分析器:为了更好地支持多语言搜索,此版本引入了新的分析器,如针对中文的SmartChineseAnalyzer,可以更精确地处理中文分词问题。 3. 查询...

    Lucene 搜索方法(短语搜索)

    本文将聚焦于Lucene中的短语搜索,一种能精确匹配多个词汇顺序的搜索方法。通过分析和实践`DemoData.java`和`PhraseQueryDemo.java`这两个示例代码,我们将深入探讨这一主题。 首先,短语搜索是Lucene中的一种高级...

    lucene4.0+ik

    此外,它还支持多线程索引和查询,提升了并行处理能力。对于开发者而言,Lucene4.0提供了更丰富的API,使得构建全文检索应用更为便捷。 接着,我们聚焦IKAnalyzer2012。这是一款基于Java的开源中文分词器,专门针对...

    lucene 实现类似百度搜索

    4. **并发控制**:多线程环境下,合理使用 Locks 或 LockFree 机制保证数据一致性。 通过以上步骤和技巧,我们可以使用 Lucene 实现一个强大的搜索引擎,提供类似百度的搜索体验。无论是在网站、应用还是大数据环境...

    Lucene搜索引擎开发权威经典(附盘源码)【于天恩】.zip

    此外,还会讨论如何优化索引性能,如使用多线程索引、内存管理以及索引压缩技术。 在查询处理方面,书中可能会详细介绍Lucene的查询语法,包括标准查询解析器、短语查询、布尔查询、近似查询等,以及如何自定义查询...

    基于LUCENE的搜索引擎的设计与实现源代码

    此外,对于初学者,理解Java的IO流和多线程编程也是必要的,因为索引构建和搜索过程可能涉及大量的文件读写和并发操作。同时,掌握XML或者JSON等数据格式的处理也有助于处理数据源和结果输出。 总的来说,"基于...

    lucene-core-2.4.0.jar

    - 改进了多线程索引性能,支持并发写入。 - 引入了更灵活的查询语法,如布尔查询、短语查询等。 - 提供了对倒排索引的压缩优化,减小存储空间。 - 强化了查询性能,如更快的评分计算和更高效的top-N搜索。 四、应用...

    Lucene.net2.4.0

    索引过程支持多线程,大大提高了索引速度。 3. **强大的查询引擎**:提供丰富的查询语法,包括布尔逻辑、短语查询、模糊查询、前缀查询等,可以构建复杂的查询表达式。 4. **内存和磁盘优化**:索引结构可以在内存...

    解密搜索引擎技术实战++Lucene&Java;精华版_.pdf

    随着大数据时代的到来,单台服务器往往无法满足大规模数据的搜索需求,因此,理解如何使用Solr或Elasticsearch(基于Lucene的分布式搜索引擎)进行集群部署和管理,是提升搜索效率的关键。 除此之外,实战部分会...

    lucene in Action

    这部分内容会涵盖到Document、Field、Analyzer等核心类的使用,以及如何优化索引性能,例如使用多线程并行索引和优化存储策略。 在搜索功能的实现上,《Lucene in Action》深入剖析了查询解析和评分机制。书中会...

    lucene2.2的源码包

    2. 性能优化:缓存策略、内存管理、多线程并行处理等,以提升搜索速度和系统性能。 3. 高级查询:组合查询、模糊匹配、短语查询等,丰富查询语法,满足复杂检索需求。 通过深入学习和实践Lucene 2.2的源代码,...

    lucene.net 2.9.2

    - **创建索引**:首先,需将数据源(如数据库、文件系统等)中的信息转化为Lucene的Document对象,然后添加到IndexWriter,完成索引构建。 - **搜索索引**:使用Searcher对象,通过QueryParser解析查询,执行搜索...

    Lucene.net学习书记整理

    - **性能优化**:讨论如何通过缓存、分片、多线程等策略提升Lucene.net的性能。 - **多语言支持**:Lucene.net提供了多种语言的分析器,如英文、中文等,以适应不同语言的搜索需求。 - **更新与维护索引**:讲解...

    实时建立索引的架构

    5. 并发控制:在多线程环境下,保证数据一致性是实时索引的一大挑战,需要合理的设计锁机制或使用乐观锁策略。 四、挑战与优化 实时建立索引的架构面临内存、磁盘I/O、网络带宽等资源限制,需要不断优化索引算法、...

    Lucene 2.0+Heritrix源码【2】

    在Lucene 2.0版本中,引入了更多的改进和优化,例如对多线程的支持增强,提高了索引和搜索的效率,以及对新特性的添加,如n-gram分析器,使得短语搜索更为精确。 Heritrix,另一方面,是互联网档案馆开发的一款开放...

    lucene4.3.0+IK Analyzer2012FF

    - **增强的多线程支持**:支持更多的并行操作,适应大规模数据处理场景。 - **API的稳定性和兼容性**:对API进行了一些调整,增强了向前兼容性。 2. **IK Analyzer 2012FF**: - **IK Analyzer** 是一个针对中文...

    开发自己的搜索引擎——Lucene+Heritrix(第2版)光盘内容

    - 性能优化:如使用多线程索引和搜索,缓存热数据,以及使用分布式搜索策略。 - 搜索结果的相关性算法:可以使用TF-IDF、BM25等算法来提高搜索质量。 - 用户体验:提供高级搜索选项,如拼写纠错、模糊搜索、同义词...

    精品课程推荐 大数据与云计算教程课件 优质大数据课程 37.Solr(共38页).pptx

    索引库通过 Writer 类进行添加、更新和删除操作,同时支持多线程处理。 【Solr 安装与启动】 安装 Solr 需要 JDK 1.8 或更高版本,可以从官方下载 Solr 发行包并解压。默认端口为 8983,可以通过配置启动内置示例。...

Global site tag (gtag.js) - Google Analytics