0 0

LUCENE多线程生成索引问题!10

描述如下:
我在一个进程中,启动五个线程,每个线程从数据库中分片取模数据,在进程中共享同一个

private static IndexWriter indexWriter = null;


然后每个线程上从数据库获取数据,生成对应的document,然后没生成一个document就添加到 indexWriter中去,结果极小概率的报错!
错误内容如下
 java.lang.NullPointerException
		   		at org.wltea.analyzer.Context.lockBuffer(Context.java:96)
				at org.wltea.analyzer.seg.CJKSegmenter.nextLexeme(CJKSegmenter.java:162)
				at org.wltea.analyzer.IKSegmentation.next(IKSegmentation.java:84)
				at org.wltea.analyzer.lucene.IKTokenizer.incrementToken(IKTokenizer.java:51)
				at org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPerField.java:135)

问题补充:后来自己修改成
List<Document> list = new ArrayList<Document>();

list.add(doc);

indexWriter.addDocuments(list);

结果发现生成的索引都有问题了!~~郁闷中~~

求大神解决~~
2014年1月09日 11:28
目前还没有答案

相关推荐

    基于lucene技术的增量索引

    - **并发控制**:在多线程环境下,需要确保对索引的操作是安全的,防止数据冲突和丢失。 - **优化索引**:定期执行索引优化(`IndexWriter.optimize()`)可以合并较小的段,提高搜索效率,但需要注意这是一项耗时...

    lucene并行索引

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

    Lucene.net高速创建索引

    描述中提到的“对SQL Server数据库表,用多线程,高速创建索引”,是指在构建Lucene.NET索引时,采用了多线程技术来提升性能。这种做法可以充分利用多核处理器的计算能力,将数据处理任务分散到多个线程中,从而加快...

    lucene实现索引查询

    6. **创建查询器**:`IndexSearcher`执行查询,传入索引读取器和是否开启多线程。 7. **执行查询**:调用`IndexSearcher.search()`方法,返回匹配的文档集合(TopDocs)。 8. **处理查询结果**:TopDocs包含匹配...

    深入了解Lucene之二 索引结构.ppt

    8. 锁(Lock)文件:确保多线程环境下的并发安全性。 9. 其他辅助文件,如压缩格式的索引信息(*.cfs)等。 在索引构建过程中,每个字段的文本可以经过分词器(tokenizer)处理,生成一系列项。对于被索引的字段,...

    使用lucene实现对数据库的索引

    - **并行索引** - 利用多线程同时处理不同的数据块,提高索引构建速度。 - **优化Analyzer** - 根据数据特性选择合适的Analyzer,减少不必要的文本处理。 - **缓存策略** - 对数据库查询结果进行缓存,避免重复...

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

    - 多线程:在多核处理器上,可以使用多个线程并行构建或搜索索引,提升效率。 6. **扩展性** - Filter:可以添加 Filter 对象来进一步筛选搜索结果,例如按时间范围、地理位置等条件过滤。 - 自定义排序:通过...

    Lucene索引数据分析器

    同时,它还支持多线程读取,确保了在并发环境下的安全性和效率。开发者可以使用`IndexReader`查询索引,获取匹配查询条件的文档,并进一步处理搜索结果。 **数据展示** 描述中提到的“数据以表格的形式展示”,这...

    Lucene的原理完整版pdf

    6. **多线程和分布式**:Lucene支持多线程索引和搜索,通过Solr或Elasticsearch等工具,还可以实现分布式搜索。 7. **倒排索引**:Lucene的核心是倒排索引,它允许快速定位含有特定术语的文档,极大提高了搜索效率...

    LuceneDemo

    2. 可扩展性:Lucene支持多线程索引和查询,可以方便地集成到分布式系统中,满足大数据量的处理需求。 3. 灵活性:Lucene提供了一套完整的API,开发者可以根据需要自定义分词器、评分策略等,实现个性化的全文检索...

    有关Lucene的问题(8):用Lucene构建实时索引的文档更新问题[整理].pdf

    - 并发控制:在多线程环境中,确保删除和更新操作的一致性可能需要适当的锁机制,这可能会影响性能。 - 性能优化:缓存从Lucene的ID到应用ID的映射可以加快`FilterIndexReader`的生成,减少不必要的I/O操作。 - ...

    lucene基础jar包

    9. **多线程支持**:Lucene 是线程安全的,可以在多线程环境中使用,这在处理大量数据时尤为重要。 10. **社区支持与扩展**:Lucene 有一个活跃的开发者社区,不断改进和扩展其功能。例如,Solr 和 Elasticsearch ...

    lucene3.0核心jar包

    8. **多线程支持**:Lucene 3.0 允许在多线程环境中使用,开发者可以利用并发特性来提高索引和搜索的速度,但需要注意同步问题,避免数据竞争。 9. **扩展性**:Lucene 3.0 提供了丰富的API,允许开发者自定义分词...

    lucene的简单介绍以及使用

    Lucene 的主要功能是全文搜索,其核心是接收一系列的字符串输入,然后生成索引,用于快速定位和查找含有特定关键词的文本。你可以利用 Lucene 对站内新闻、数据库表字段、甚至创建自定义搜索引擎进行索引和搜索。...

    最新版linux lucene-9.0.0.tgz

    9. **多线程支持**:Lucene利用多线程提高搜索和索引的速度,尤其在服务器环境下,可以充分利用多核CPU的优势。 10. **社区支持和扩展性**:作为Apache软件基金会的项目,Lucene拥有活跃的社区,提供了丰富的文档和...

    Lucene3.1使用教程

    2. **多线程支持**:增加了对多线程索引和搜索的支持,提升了并发性能。 3. **更强大的查询表达式**:支持更复杂的布尔查询和短语查询,以及更灵活的评分机制。 4. **新的API**:引入了更简洁、更直观的Java API,...

    lucene3.6.jar

    2. 性能调优:调整缓存大小、使用多线程进行索引构建和搜索等方法可以提升性能。 3. 更新管理:当原始数据发生变化时,Lucene提供更新和删除文档的功能,确保索引与数据同步。 4. 扩展性:Lucene支持分布式搜索,...

    Lucene引擎模块

    4. **可扩展性**: 支持多线程索引和搜索,以及多种存储机制(如内存、文件系统、数据库等)。 5. **社区活跃**: 由于其开源特性,Lucene拥有庞大的开发者社区,不断更新和优化,提供丰富的插件和扩展功能。 ### 二...

    lucene.net 2.0.4

    1. 支持多线程:Lucene.NET 2.0.4允许在多线程环境中进行索引和搜索,提高了效率。 2. 增强的性能:通过优化内部数据结构和算法,Lucene.NET 2.0.4在搜索速度和内存使用上都有显著提升。 3. 存储选项:可以选择...

    lucene4.6.0 jar包

    在 4.6.0 版本中,这个过程更为优化,支持多线程索引,提高了性能。 2. **文本分析(Text Analysis)**: Lucene 内置了各种分词器(Analyzer),如英文的 StandardAnalyzer,用于将输入文本分解成有意义的单词。...

Global site tag (gtag.js) - Google Analytics