`
deepfuture
  • 浏览: 4336681 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:79459
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:68456
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:101593
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:281393
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:14630
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:65658
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:31360
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45264
社区版块
存档分类
最新评论

lucene-利用内存中索引和多线程提高索引效率

阅读更多

1、RAMDirectory和FSDirectory对比

RAMDirectory在内存中所进行的操作比FSDirectory在磁盘上所完成的工作要快得多。

2、即使使用索引参数来使Lucene减少在磁盘上合并段的频率,基于FSDirectory的索引还要把它们写入磁盘,而RAMDirectory完全不用写磁盘。

3、将RAMDirectory做为一个缓冲器实现对索引的、批处理

1)创建一个基于FSDirectory的索引。

FSDirectoryfsdir=FSDirectory.getDirectory("/tmp/index",true);

2)创建一个基于RAMDirectory的索引

RAMDirectory ramdir=new RAMDirectory();

3)向基于RAMDirectory的索引中增加文档。

IndexWriter ramwriter=new IndexWriter(ramdir,newSimpleAnalyzer(),true);

IndexWriter fswriter=new IndexWriter(fsdir,newSimpleAnalyzer(),true);

while (...){

...

ramwriter.addDocument(doc);

}

4)不定期把缓存在RAMDirectory中的所有数据写入FSDirectory

if (可以写入)

{

fswriter.addIndexes(Directory[] {ramdir});//合并数据

ramwriter.close();

ramwriter=newIndexWriter(ramdir,new SimpleAnalyzer(),true);

}

5)转到第三步

4、并行索引多个索引文件

可以使用多线程的索引程序,并行使用把RAMDirectory作为一个缓冲器,然后使用addIndexes合并写入

分享到:
评论

相关推荐

    lucene索引优化多线程多目录创建索引

    一步一步跟我学习lucene是对近期做lucene索引的总结,

    lucene - 副本.zip

    lucene索引多线程多目录创建索引

    lucene并行索引

    lucene并行索引

    Lucene5学习之多线程创建索引

    NULL 博文链接:https://iamyida.iteye.com/blog/2196855

    论文研究-基于Lucene的地名数据库快速检索系统.pdf

    其次,利用内存索引和多线程并行处理技术提高Lucene创建倒排索引效率,并依据地名类别和显示优先级属性优化了检索结果相关度排序策略。最后,开发了一套具有快速搜索和地图定位展示的Web地名检索系统,使用500万条...

    lucene-analyzing-infix-suggester-bug:Lucene AnalysisInfixSuggester错误演示

    我试图在多线程设置中从同一索引中提供建议,但是由于这种设计,我只能为每个进程的每个索引创建一个建议程序。 我已经创建了这个GitHub项目来演示该错误。 要运行演示: ./gradlew buildjava -jar build/libs/...

    Lucene.net高速创建索引

    对sqlserver数据库表,用多线程,高速创建索引。性能很高。参数灵活

    @#Lucene_In_Action中文#@

    Lucene 搜素 分词 本版本从CSDN中获得,原内容可从CSDN的网上看到...本章还涉及Lucene索引的内部结构,用多线程和多进程访问Lucene时的重点和难点,以及防止并发索引修改的锁机制这些内容。

    【分享:lucene学习资料】---<下载不扣分,回帖加1分,欢迎下载,童叟无欺>

    4.12. ParalellMultiSearcher类---多线程搜索 14 5. 排序 14 5.1. Sort类 14 5.2. SortField类 14 5.3. 指定排序的法则 15 5.3.1. 按照文档的得分降序排序 15 5.3.2. 按文档的内部ID升序排序 15 5.3.3. 按照一个...

    lucene.net搜索技术,附带学习资料

    另外就是可以用多线程来分别对不同的内容进行索引并保存到RAMDirectory里,然后再把所有的内存索引合并到FSDirectory里,甚至可以让多台服务器分别处理内容的各个部分,然后把索引结果放到一个队列里,再有一台机器...

    java(结合lucene)版的公交搜索系统的实现.rar

    Lucene索引:利用Lucene技术建立公交线路和站点信息的全文索引,实现快速的路线搜索和匹配功能,提高系统查询效率。 多线程优化:采用多线程技术处理用户请求和数据更新,提高系统的并发处理能力和响应速度。 ...

    基于lucene的搜索引擎总结

    IndexWriter和IndexReader是线程安全的,可以被多线程共享 全文索引/搜索 中文分词器 最大匹配法(机械分词):按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串...

    apache lucene 4.10.0入门单元测试代码demo

    总结了一些实用的demo 包括: 1.建立索引 2.通过IKAnalyzer搜索中文关键词 3.复杂的多字段搜索 4.多线程并发搜索,通过contiperf测试,详见:...lucene支持多线程并发搜索和建索引,只要IndexWriter是单例模式即可

    Lucene36的各个例子

    有filter、index、analyze、以及多目录多线程检索等,search的目录中有根据不同情况的查询方式的实现,在下载下去后,把lucene_common下的GetParamsService.java打开,里面可以设置要存放的索引目录以及小文件目录

    HubbleDotNet 全文检索

    了缓存和内存管理设计,可以帮助用户最大限度的提高查询的效率。HubbleDotNet 力争在未来的几年内超过 Lucene.net 成为.net 开发环境中最受欢迎的全文检索组件。 该文章是本人从博客园eaglet发表的文章中整合下来的...

    Hubble.net全文搜索源码

    Hubble.net全文搜索源码 ...Hubble.net 还进行了缓存和内存管理设计,可以帮助用户最大限度的提高查询的效率。Hubble.net 力争在未来的几年内超过Lucene.net成为.net开发环境中最受欢迎的全文检索组件。

    Tantivy 是受 Apache Lucene 启发并用 Rust 编写的全文搜索引擎库

    10ms),非常适合命令行工具BM25评分(与Lucene相同)自然查询语言(例如(michael AND jackson) OR "king of pop" )短语查询搜索(例如"michael jackson" )增量索引多线程索引(在我的桌面上索引英文维基百科需要 ...

    UindexWeb搜索

    UindexWeb搜索是一个完整的蜘蛛程序,他的内部使用多线程, 多个自定义组件来实现搜索,在打开工程前,需要先安装如下自定 义组件: Uindex.pas (用来分析Html网页的组件) UindexStatusBar.pas (用来在状态栏画图片) ...

    论文研究-数字图书馆主题搜索引擎的设计与实现.pdf

    提出构建数字图书馆主题搜索引擎的总体...依赖数字图书馆各方面特点,提出支持多线程主题爬行器的设计,并提出一种新颖的URL主题相关性剪切算法EPR,为实现数字图书馆主题搜索引擎原型提供重要的设计。基于开源Lucene平

    基于Lucene的海量数据库全文检索的设计与实现 (2011年)

    基于Lucene实现了一个海量数据库全文检索的原型。把关系数据库引入了本系统,可针对...采用多线程,通过动态机制来实现不同类型源数据库中记录的抽取、转换、建立索引;提供定时自动更新索引的功能;提供多种检索方式。

Global site tag (gtag.js) - Google Analytics