`
ctxyzhanwei
  • 浏览: 10185 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

Lucene个人总结

阅读更多
1、调用commit方法,会生成一个.cfs文件,调用一次生成一个。
2、单独调用optimize()方法,会额外生成一个合并了多个.cfs文件的大.cfs文件,此时如果不close(),则索引文件大小翻倍。单独close()方法无效。
3、添加文档后,手动GC一次,内存释放快。
4、设置合并因子,根据.cfs文件个数合并。
5、添加一次document则消耗一定内存,然后释放,内存回升。
6、不进行提交操作,内存逐渐增长,若进行提交且内存占用多,则一次性回升大,然后降低至最低。
7、暂时未发现改变内存缓冲大小setRAMBufferSizeMB对索引性能的影响。
8、如果合并索引文件,则剩余的碎片会在commit或者是close之后自动删除。
9、合并式的索引效率没有提交式的索引效率高。
10、加载索引,首先读入段信息,然后看一下有几个段:如果只有一个,那么可能是优化过的,直接读取这一个段就可以;否则需要一次读入各个段,然后再拼成一个MultiReader。
11、增强索引的实时性,利用内存索引存放document一段时间,然后写入磁盘索引。搜索的时候提供内存跟磁盘索引多级目录。合并的时候,需要创建第三个索引,用于存放新增加的document,搜索时需要遍历这三个索引。
12、分布式的处理, 需要将相应的类,按照同样的路径打包,否则出现问题。
13、分布式的注册类,实现UnicastRemoteObject类后就不需要专门生成RMI类。
14、采用多线程,对每一个线程都有一个对应的文档集处理对象,因此可以并行的进行索引,虽然对文档的处理过程可以并行,但是将文档写入索引文件却必须串行进行。
15、setMergeFactor设置lucene的合并参数,可以由setMaxMergeDocs来控制一个.cfs文件里面的document个数,如果超过了,则合并因子失效了。
16、所谓的优化就是对整个目录内未合并的segment进行的合并。同设置合并因子之后的合并。
17、多字段查询,设置为should表示这一句查询语句分词后是or的连接,设置为Must,则为and 的连接。should+must=must。
18、对位置偏移量信息的API使用:
//获取到具体文档的具体字段的所有词向量对象。
TermPositions tp=ir.termPositions(new Term("content","你"));
while(tp.next()){
//根据文档默认的ID获取到该文档下面的content字段中的所有词。
TermPositionVector tfv=(TermPositionVector) ir.getTermFreqVector(tp.doc(), "content");
System.out.println(tfv);
//遍历每一个词,获取到内容和下标
for(int i=0;tfv!=null&&i<tfv.getTerms().length;i++){
System.out.println(tfv.getTerms()[i]);
//通过每个词的下标,取出当前词的位置信息数组,位置信息包括起始坐标和结束坐标,坐标计算标点,词出现过几次,就有几个位置对象。
TermVectorOffsetInfo[] tt=tfv.getOffsets(i);
for(TermVectorOffsetInfo to:tt)
{
//打印出来该词在原本的句子中的起始位置到结束位置。
System.out.println(to.getStartOffset()+"____"+to.getEndOffset());
}
}
}
19. 对关键词高亮的时候可以不需要其他参数,只要你能传递原始内容进去,它自动解析出来并进行高亮。
20. 对RMI修改端口问题:如果用默认的端口则在绑定(Naming.rebind())中传递的字符串不需要添加地址和端口,如果修改了端口,则需要显示的声明出来。
分享到:
评论

相关推荐

    lucene个人总结

    根据提供的文件信息,以下是对Lucene 3.5版本的核心知识点进行的详细解析与总结: ### Lucene 3.5 概述 Lucene 3.5 是一款高性能的全文检索引擎工具包,广泛应用于搜索引擎、文档管理和内容管理等领域。Lucene 的...

    lucene部分案例的源代码

    《Lucene案例源代码解析》 Lucene是一个高性能、全文本搜索库,广泛应用于各种信息检索系统中。...无论是在企业级应用还是个人项目中,Lucene都是一个不可或缺的工具,值得每一个Java开发者深入研究。

    lucene5.3.0最新版源码包

    《深入剖析Lucene 5.3.0:全文检索技术的巅峰之作》 在信息技术日新月异的今天,全文检索技术已经成为了信息检索领域的核心...无论是对于个人技能提升,还是企业级应用开发,深入研究Lucene都是一个极具价值的选择。

    Lucene.Net2.0(C#)

    总结,Lucene.Net 2.0是.NET开发者实现全文检索的重要工具,它的源代码提供了丰富的学习材料,可以帮助开发者提升搜索功能的开发效率和质量。无论是在企业级应用还是个人项目中,熟悉并掌握Lucene.Net都能大大增强你...

    盘古分词+Lucene

    总结来说,盘古分词和Lucene的结合使用,为中文全文检索提供了一套高效、精准的方法。通过合理的配置和优化,我们可以构建出性能优异的搜索引擎,服务于各类信息检索应用,提升用户的搜索体验。在信息技术领域,掌握...

    Lucene.Net2.9.1

    总结来说,Lucene.Net 2.9.1 是一个强大且成熟的全文搜索引擎库,为 .NET 开发者提供了丰富的搜索功能和灵活性。无论是在企业级应用还是个人项目中,它都能发挥出重要的作用。通过深入学习和实践,开发者可以利用 ...

    基于Lucene的全文检索系统

    总结来说,基于Lucene的全文检索系统利用了Java和Swing技术,结合Lucene的索引和搜索能力,为本地文件提供了便捷的全文搜索服务。用户只需输入关键词,系统就能快速找到相关的文档,极大地提高了工作效率。通过深入...

    基于lucene的文件管理系统(完善版,含jar包)

    总结来说,基于Lucene的文件管理系统通过构建高效的索引,实现了对大量文件的快速搜索和管理。它不仅简化了文件操作,还为企业或个人提供了强大的信息检索能力。此完善版系统还包含了完整的jar包,意味着用户可以...

    Lucene入门与使用

    - 它最初在 Doug Cutting 的个人网站上发布,2001 年 10 月正式捐赠给 Apache 基金会,成为其 Jakarta 项目下的一个子项目。 2. **Lucene 的应用范围**: - Lucene 被广泛应用于全文检索项目中,特别适合处理大量...

    搜索引擎lucene学习资料

    在"lucene总结.chm"文件中,可能包含了网友们对Lucene的详细学习笔记和实践心得。CHM是Microsoft编写的帮助文件格式,通常包含HTML页面和相关资源,便于用户查阅和学习。在这里,读者可以找到关于Lucene的API用法、...

    lucene.net 2.3版

    总结,Lucene.NET 2.3版是.NET开发者实现全文搜索的强大工具,其高效的索引和搜索机制,以及丰富的定制化选项,使其在各种应用场景中都表现出色。无论你是开发企业级应用还是个人项目,都能从中受益。通过深入理解和...

    Lucene开源的全文检索框架

    ### Lucene开源的全文检索框架 ...无论是个人开发者还是大型企业,在构建高效的信息检索系统时都可以考虑采用Lucene。通过深入了解Lucene的工作原理和技术细节,我们可以更好地利用这一工具,满足多样化的搜索需求。

Global site tag (gtag.js) - Google Analytics