`
winzenghua
  • 浏览: 1418747 次
  • 性别: Icon_minigender_2
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

关于Lucene的记录检索优化

阅读更多

Lucene面向全文检索的优化在于首次索引检索后,并不把所有的记录(Document)具体内容读取出来,而起只将所有结果中匹配度最高的头100条结果(TopDocs)的ID放到结果集缓存中并返回,这里可以比较一下数据库检索:如果是一个10,000条的数据库检索结果集,数据库是一定要把所有记录内容都取得以后再开始返回给应用结果集的。所以即使检索匹配总数很多,Lucene的结果集占用的内存空间也不会很多。对于一般的模糊检索应用是用不到这么多的结果的,头100条已经可以满足90%以上的检索需求。

如果首批缓存结果数用完后还要读取更后面的结果时Searcher会再次检索并生成一个上次的搜索缓存数大1倍的缓存,并再重新向后抓取。所以如果构造一个Searcher去查1-120条结果,Searcher其实是进行了2次搜索过程:头100条取完后,缓存结果用完,Searcher重新检索再构造一个200条的结果缓存,依此类推,400条缓存,800条缓存。由于每次Searcher对象消失后,这些缓存也访问那不到了,你有可能想将结果记录缓存下来,缓存数尽量保证在100以下以充分利用首次的结果缓存,不让Lucene浪费多次检索,而且可以分级进行结果缓存。

Lucene的另外一个特点是在收集结果的过程中将匹配度低的结果自动过滤掉了。这也是和数据库应用需要将搜索的结果全部返回不同之处。

分享到:
评论

相关推荐

    使用lucene全文检索数据库

    **使用Lucene全文检索数据库** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发。它是Java编写的,能够帮助开发者在各种应用程序中实现强大的全文检索功能。在这个项目中,我们将探讨如何利用Lucene ...

    lucene全文检索全面教程

    **Lucene全文检索全面教程** Lucene是一款由Apache软件基金会开发的开源全文检索库,它为开发者提供了在Java应用程序中实现高性能、可扩展的全文检索功能。本教程将深入探讨Lucene的核心概念、架构和使用方法,帮助...

    Lucene全文检索案例

    **Lucene 全文检索案例** Lucene 是一个高性能、可扩展的信息检索库,由Apache软件基金会开发。它提供了一个简单但功能强大的API,用于在各种数据源中实现全文搜索。这个案例将深入探讨如何使用Lucene进行全文检索...

    lucene检索小例子

    **Lucene检索小例子** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。这个"lucene检索小例子"程序展示了如何利用Lucene的强大功能来构建索引和执行搜索操作。Lucene的核心特性包括文本分析、...

    Lucene.Net 实现全文检索

    在本案例中,我们将在 .Net MVC4 框架上使用 Lucene.Net 来构建一个全文检索系统。 首先,我们需要理解全文检索的基本概念。全文检索是指在文档集合中,根据用户输入的查询词,查找包含这些词的文档。与传统的...

    基于Lucene的全文检索引擎研究与应用.pdf

    本文将基于一篇关于“基于Lucene的全文检索引擎研究与应用”的论文,深入探讨全文检索的基本原理、Lucene系统的结构特点以及其实现的应用案例。 #### 全文检索概述 全文检索是一种信息检索方式,它能够根据文档中...

    智能提示框学习记录,附带工程源码---结合lucene全文检索

    在IT行业中,智能提示框是一种常见且实用的功能,它能够为用户提供实时的搜索建议或自动...通过实际操作,你可以学习到如何使用lucene优化搜索效率,以及如何将这种高级搜索功能集成到你的Web应用中,提高用户体验。

    lucene检索文档、检索大数据量数据

    当用户输入查询时,Lucene会分解查询语句成词项,然后查找这些词项在倒排索引中的对应记录,最后合并所有匹配的文档,返回给用户。 ### 2. Lucene 文档处理 在Lucene中,被检索的文档首先需要被解析和预处理。这个...

    lucene、lucene.NET详细使用与优化详解

    《lucene、lucene.NET 详细使用与优化详解》 lucene 是一个广泛使用的全文搜索引擎库,其.NET版本称为lucene.NET,它提供了强大的文本检索和分析能力,适用于各种场景下的全文搜索需求。lucene 并非一个可以直接...

    lucene全文检索实例二(实现对10万条数据检索文件的增删改查操作)

    5. `lucene-benchmark-3.6.0.jar`:这是Lucene的性能基准测试工具,用于评估和优化搜索性能。 6. `lucene-kuromoji-3.6.0-javadoc.jar`:这个是Lucene的日语分词器Kuromoji的API文档,用于处理日语文本。 7. `gson-...

    全文检索系统(Lucene)

    **全文检索系统与Lucene** 全文检索系统是一种用于在大量文本数据中快速查找相关信息的工具。它通过索引文本中的关键词来实现高效的搜索性能,使得用户可以输入任意词汇或短语,系统能在短时间内返回最相关的文档。...

    lucene3.5全文检索案例lucene+demo

    1. 文档(Document):Lucene中的最小处理单元,相当于数据库中的一条记录,由多个字段(Field)组成。 2. 字段(Field):文档的组成部分,每个字段都有特定的属性,如是否可被索引、是否可被存储等。 3. 分词器...

    Lucene全文检索引擎工具包 v7.7.3-源码.zip

    在创建索引时,Lucene会分析文档中的文本,将其拆分成一个个词汇(Token),并记录每个词汇出现在哪些文档以及在文档中的位置。在查询时,它通过快速查找这些索引来找到与查询词相关的文档,从而提高搜索速度。 ...

    基于Lucene的全文检索引擎研究与应用

    ### 基于Lucene的全文检索引擎研究与应用 #### 一、Lucene概述 Lucene是一款由Java编写的全文检索引擎工具包,具备快速的索引访问速度,支持多用户访问,并且可以在多种平台上运行。随着数字信息量的爆炸性增长,...

    lucene智能检索

    - **倒排索引(Inverted Index)**: Lucene 的索引结构,记录每个词元在哪些文档中出现过,方便快速查找匹配的文档。 2. **Lucene 工作流程** - **分析(Analysis)**: 文本输入后,通过 Analyzer 进行分词、去除...

Global site tag (gtag.js) - Google Analytics