`
footman265
  • 浏览: 118323 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

Lucene 将索引Flush到硬盘

阅读更多

 

private void finishDocument(DocumentsWriterThreadState perThread, DocWriter docWriter) throws IOException {

    if (doBalanceRAM())
      // Must call this w/o holding synchronized(this) else
      // we'll hit deadlock:
      balanceRAM();

    synchronized(this) {

      assert docWriter == null || docWriter.docID == perThread.docState.docID;

      if (aborting) {

        // We are currently aborting, and another thread is
        // waiting for me to become idle.  We just forcefully
        // idle this threadState; it will be fully reset by
        // abort()
        if (docWriter != null)
          try {
            docWriter.abort();
          } catch (Throwable t) {
          }

        perThread.isIdle = true;
        notifyAll();
        return;
      }

      final boolean doPause;

      if (docWriter != null)
        doPause = waitQueue.add(docWriter);
      else {
        skipDocWriter.docID = perThread.docState.docID;
        doPause = waitQueue.add(skipDocWriter);
      }

      if (doPause)
        waitForWaitQueue();

      if (bufferIsFull && !flushPending) {
        flushPending = true;
        perThread.doFlushAfter = true;
      }

      perThread.isIdle = true;
      notifyAll();
    }
  }
 

 

分享到:
评论

相关推荐

    Lucene建索引及查询关键字

    在Eclipse环境中运用java,Lucene建索引及查询关键字

    基于lucene技术的增量索引

    - **首次创建索引**:首先,我们需要遍历整个数据源,创建每个文档的实例,然后将这些文档添加到Lucene的索引writer中。完成这一步后,就会生成一个完整的初始索引。 - **监控数据变更**:为了实现增量索引,我们...

    lucene做索引查询流程

    lucene 做索引查询流程,来自《lucene in action》

    Lucene之删除索引

    当你调用`IndexWriter.deleteDocuments(Term term)`或`IndexWriter.deleteDocuments(Query query)`方法时,Lucene并不会立即从硬盘上删除对应的文档,而是将这些待删除的文档ID存储在一个叫做“位向量”(BitSet)的...

    Lucene创建索引步骤

    Lucene创建索引步骤: 1、创建Directory(索引位置) 2、创建IndexWrite(写入索引) 3、创建Document对象 4、为Document添加Field(相当于添加属性:类似于表与字段的关系) 5、通过IndexWriter添加文档到索引中

    Lucene读取索引文件

    本文将深入探讨Lucene如何读取索引文件,帮助开发者更好地理解和利用这一强大的工具。 首先,我们需要了解Lucene索引的基本结构。一个Lucene索引是由多个文件组成的,包括但不限于 segments文件、.del文件(删除...

    Lucene索引器实例

    以上就是Lucene索引器实例的基本介绍,通过这个实例,我们可以理解到如何使用Lucene来创建、管理和搜索文本索引。在实际项目中,可以根据需求选择合适的存储(如硬盘目录或分布式存储)、优化分析器配置、处理大量...

    lucene索引结构原理

    6. **段(Segment)**:为了提高效率,Lucene将大型索引拆分为多个较小的段。每个段都包含一个完整的倒排索引,新添加的文档会被写入新的段,旧的段可以被合并以减少段的数量。 7. **字段(Field)**:文档由多个...

    lucene实现索引查询

    创建索引是Lucene的核心过程,它涉及到以下步骤: 1. **定义索引目录**:首先,你需要指定一个目录来存储索引文件。这通常是一个文件夹,可以通过`File`对象表示,然后使用`FSDirectory.open()`方法打开。 2. **...

    Lucene3.0创建索引

    本篇文章将详细介绍如何使用Lucene3.0来创建索引,并通过一个具体的例子来演示整个过程。 #### 一、Lucene3.0简介 Lucene是一款高性能、全功能的全文搜索引擎库。它为开发者提供了构建搜索应用所需的所有基本工具...

    lucene 索引小示例

    索引是Lucene处理文档的关键步骤,它将文本数据转换为一种结构化的、可快速搜索的形式。在创建索引时,Lucene会对文档进行分词,生成一系列的关键词(也称为术语或Token),然后构建倒排索引。倒排索引是一种数据...

    基于lucene的索引与搜索

    基于Lucene的索引与搜索技术,不仅涉及到数据的高效存储和检索,还包括了文本预处理、分词、相关性排序等多个环节。 第二章 搜索引擎的结构 2.1 系统概述 搜索引擎主要由三部分组成:网络爬虫(也称为网络机器人...

    lucene索引查看程序及代码

    Lucene的索引是一种倒排索引,它通过分析文档内容,将每个单词映射到包含该单词的文档集合,从而实现快速查找。然而,对于开发者来说,直接查看这些索引结构通常并不直观,这就需要专门的工具来帮助我们理解索引的...

    lucene并行索引

    ### Lucene并行索引关键技术解析 #### 一、引言 随着互联网的快速发展,海量信息的管理和检索成为了重要的挑战。传统的单机索引方法已无法满足高效处理大规模数据的需求,尤其是在搜索引擎领域。Lucene作为一款...

    lucene全文检索简单索引和搜索实例

    4. 添加文档到索引:使用IndexWriter对象将Document对象添加到索引目录中。IndexWriter负责管理写入过程,包括合并段(Segment)以优化空间和性能。 5. 关闭资源:完成索引后,记得关闭IndexWriter,释放资源。 三...

    lucene索引查看工具及源码

    通过阅读和学习 Luke 的源码,我们可以了解到如何与 Lucene 索引进行交互,以及索引结构是如何组织和存储的。 在提供的压缩包 "luke-3.3.0" 中,包含了 Luke 工具的旧版本。这个版本可能不支持最新的 Lucene 版本,...

    lucene 索引 查看 工具

    1. **Lucene 索引**:Lucene 的索引是一种倒排索引,它将文档中的词项(tokens)映射到包含这些词项的文档列表。这种数据结构使得搜索过程高效,能够在大量文档中快速找到包含特定关键词的文档。 2. **Luke 工具**...

    深入 Lucene 索引机制

    《深入 Lucene 索引机制》这篇博文主要探讨了Lucene这个全文搜索引擎的核心索引原理,它在信息检索领域有着广泛的应用。Lucene是一个开源的Java库,它提供了高效、可扩展的文本搜索功能。以下是对Lucene索引机制的...

    Lucene 索引的简单使用

    本篇文章将详细阐述如何使用Lucene来创建和查询索引,帮助你深入理解其核心概念和操作流程。 ### 1. Lucene基本概念 - **文档(Document)**:在Lucene中,一个文档代表你要索引的信息单元,它可以包含多个字段...

Global site tag (gtag.js) - Google Analytics