`
grantbb
  • 浏览: 271707 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Lucene搜索优化技巧 - 索引篇

阅读更多
索引
    1、t.termText()替换为new String(t.termBuffer(),0,t.termLength())
    2、StringReader 和TokenStream对象都需要close
    3、索引时Document只用一个、Field只用几个
        一个Document对象对应多个Field实例
        Field有新的setValue方法,动态改变属性
        不能只有一个Field实例
            例如:idField, bodyField
        必须等Document都到索引中之后,才可以重新设置值
    4、索引中Field的命名只使用2个字符表示
    5、有些索引字段可以考虑使用0,1替代字符串,排序采用整数来排
    6、减少索引的存储字段,一般只存ID
    7、索引的时候只用一个IndexWriter对象
    8、3.1版本有个新的方法writer.ramSizeInBytes()
        根据RAM的使用情况,来决定是不需要刷新到磁盘。
        之前:setMaxBufferedDocs
    9、批量索引的时候,尽可能多使用一些内存,采用非复合的文件方式,完成后集中优化合并索引文件
        fsWriter.addIndexesNoOptimize
        fsWriter.setUseCompoundFile(false);
        需要注意不要超过系统的允许打开文件数
    10、重复使用单一的Token实例,在analyzer中。
    11、Turn off auto-commit if there are stored fields and term vectors
        设置autoCommit=false,直到writer close之后才会生效
        默认是true
    12、如果总是同时在多个分词的字段中查询,可以考虑将多个Field合并到一个Field中
    13、增加mergeFactor,但是不要太大
        反复调试获取经验值
    14、关闭一些实际上没用的功能(不要存储一些不必要的字段,尽量不要打开term vectors)
    15、使用更快的analyzer
    16、加快获得document数据的速度
        比如:从数据库、文件获取数据的速度
    17、索引的时候可以考虑使用多线程
        使用多线程addDocuments
        需要测试,然后确定线程数
    18、可以分开索引,然后合并
        并行索引机制
5
1
分享到:
评论

相关推荐

    一步一步跟我学习lucene(12)---lucene搜索之分组处理group查询

    6. **优化性能**:为了提高性能,Lucene提供了`SecondPassGroupingCollector`,它允许在第二轮搜索中仅检索每个组的最相关文档,而不是所有文档。这对于大型数据集特别有用,因为它减少了I/O操作。 7. **注意内存...

    lucene查看工具luke-6.5.0-release.zip

    总的来说,Luke 6.5.0是Lucene开发者和管理员的得力助手,它以直观易用的方式呈现复杂的Lucene索引结构,帮助我们调试、优化和维护搜索引擎。通过熟练掌握Luke的使用,我们可以更好地理解和提升Lucene的性能,从而为...

    Lucene-in-Action-2nd-Edition---Manning

    本书面向希望利用 Lucene 构建高效搜索功能的开发人员,不仅介绍了 Lucene 的基础知识和技术细节,还提供了丰富的实践案例和高级应用技巧。 #### 二、核心概念与基础知识 **1. 信息检索术语** - **文档(Document)*...

    lucene-core-2.3.0 lucene-core2.4.0以及极易分词器 jar包

    在Java环境中,Lucene是构建搜索引擎的核心工具,它提供了高效的索引和查询机制,支持多种复杂的搜索语法。这里提到的是Lucene的两个不同版本——2.3.0和2.4.0,这两个版本都是较早的版本,但仍然在某些场景下被使用...

    Lucene-WEB-search-program.zip_lucene java web_lucene web_lucene

    通过这个"Lucene WEB搜索程序"项目,你可以深入了解全文搜索引擎的工作原理,掌握使用Java和Lucene构建Web搜索程序的基本技巧。随着对Lucene的深入理解和实践,你可以逐步构建出更复杂、功能更强大的搜索引擎应用。

    lucene-5.3.1源代码

    总结,Lucene 5.3.1不仅是一个强大的全文检索工具,其源代码更是理解搜索引擎工作原理和优化技巧的宝贵资源。通过深入研究,开发者能够创建出更加高效、个性化的全文检索系统,满足各种应用场景的需求。

    Lucene之删除索引

    在深入探讨Lucene删除索引这一主题之前,我们先...总之,Lucene的删除索引机制是一个复杂但高效的过程,涉及到了位向量、段管理和索引优化等多个环节。在实际应用中,合理使用这些功能可以确保索引的准确性和资源效率。

    Lucene4.X实战类baidu搜索的大型文档海量搜索系统-03.Lucene索引里有什么 共17页.pptx

    《Lucene4.X实战类baidu搜索的大型文档海量搜索系统》课程...课程强调理论与实践相结合,从基础到高级,全面覆盖了Lucene的使用和优化技巧,对于从事信息检索、搜索引擎开发以及大数据处理的人员具有很高的参考价值。

    lucene2.3API中文文档、lucene-3.5.0JAR包

    接下来,`lucene总结.chm`可能包含了对Lucene使用经验和技巧的总结,可能包括最佳实践、常见问题解答以及性能优化策略。例如,如何选择合适的Analyzer以适应不同的语言和数据源,如何利用倒排索引来快速定位匹配文档...

    Lucene In Action-book

    - **Advanced search techniques (高级搜索技术)**:探讨了复杂的搜索技巧,如近义词搜索、模糊匹配等。 - **Extending search (扩展搜索)**:讨论了如何通过插件和自定义组件来增强Lucene的功能。 #### 第二部分...

    lucene-3.5.0.jar

    - 索引优化:定期重建索引以提高搜索性能,避免过度碎片化。 - 内存管理:合理配置缓存,避免内存溢出。 总结,Lucene 3.5.0提供了丰富的功能和灵活性,使开发者能够快速构建高效、可扩展的全文搜索引擎。虽然...

    Lucene索引优化

    描述:在Lucene的wiki上,我们找到了一系列关于如何提升Lucene应用中索引速度的技巧与策略。这不仅涵盖了技术细节,还提供了实际操作建议,旨在帮助开发者针对特定场景优化其Lucene索引性能。 ### 知识点详细解析:...

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

    《基于Lucene的超强配置式索引应用》 在IT领域,搜索引擎的构建是至关重要的,而...在实际项目中,参考《https://evil-bdef.iteye.com/blog/1997266》这篇博文,可以获取更多关于Lucene索引应用的实践经验和技巧。

    lucene搜索引擎项目

    通过深入研究这个项目,开发者可以了解Lucene的工作原理,掌握搜索引擎的构建技巧,并且能够灵活运用到实际的项目中,提高数据检索的效率和用户体验。无论你是Java开发者还是对全文搜索感兴趣的IT人士,这个项目都是...

    lucene分组查询优化facet

    在搜索引擎和大数据分析领域,Apache Lucene 是一个广泛使用的全文检索库,它提供了高效、可扩展的搜索功能。其中,Facet(分面)查询是Lucene提供的一种...理解其原理,掌握优化技巧,是提升Lucene应用性能的关键。

    lucene工程,分词、索引

    通过实践,你可以掌握如何利用Lucene实现高效的全文搜索功能,并且可以根据需求选择不同的分词策略和优化技巧,提升搜索性能。同时,了解和研究不同分词器的优缺点,有助于在实际应用中做出更合适的选择。

    Lucene快速入门

    性能优化技巧 - **批量索引**: 批量添加文档可以显著提高索引速度。 - **使用缓存**: 对频繁访问的数据使用缓存可以减少磁盘I/O操作。 - **选择合适的分析器**: 不同类型的文档可能需要不同的分析器来获得更好的...

Global site tag (gtag.js) - Google Analytics