`
nj_link
  • 浏览: 10756 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

文档翻译一点一点(二)(lucene_tutorial)

阅读更多
Lucene – IndexWriter
此类是索引过程中创建、更新索引的核心类,以下是org.apache.lucene.index.IndexWriter类的定义
public class IndexWriter
   extends Object
      implements Closeable, TwoPhaseCommit

类属性:
static int DEFAULT_MAX_BUFFERED_DELETE_TERMS过期,用IndexWriterConfig.DEFAULT_MAX_BUFFERED_DELETE_TERMS替换
static int DEFAULT_MAX_BUFFERED_DOCS过期,用IndexWriterConfig.DEFAULT_MAX_BUFFERED_DOCS替换
static int DEFAULT_MAX_FIELD_LENGTH过期,查看 IndexWriterConfig.
static double DEFAULT_RAM_BUFFER_SIZE_MB用IndexWriterConfig.DEFAULT_RAM_BUFFER_SIZE_MB替换
static int DEFAULT_TERM_INDEX_INTERVAL过期,用IndexWriterConfig.DEFAULT_TERM_INDEX_INTERVAL 替换
static int DISABLE_AUTO_FLUSH过期用 static int DISABLE_AUTO_FLUSH替换
static int MAX_TERM_LENGTHterm的绝对长度
static String WRITE_LOCK_NAME在索引中write-lock的名称
static long WRITE_LOCK_TIMEOUT过期,用Use IndexWriterConfig.WRITE_LOCK_TIMEOUT替换

构造函数:
//唯一一个没过期的构造函数,创建一个IndexWriter,参数在conf里面设置
IndexWriter(Directory d, IndexWriterConfig conf)
方法:
1void addDocument(Document doc)将document文档添加到索引
2void addDocument(Document doc, Analyzer analyzer) 将document文档添加到索引,用analyzer替换函数本身的getAnalyzer()方法
3void addDocuments(Collection<Document> docs) 添加一整块的document对象,id按顺序分配,外部的reader对docs只能全部可见或全部不可见。
4void addDocuments(Collection<Document> docs, Analyzer analyzer) 添加一整块的document对象,id按顺序分配,外部的reader只能看到一整块或者都没有。分析器采用提供的analyzer分析器。
5void addIndexes(Directory... dirs)将所有索引列表中的段增加到当前索引
6void addIndexes(IndexReader... readers) 合并所有的索引到当前索引
7void close() 提交所有改变到索引,并且关闭所有相关的文件
8void close(boolean waitForMerges) 关闭索引,标识waitForMerges为是否等待当前合并完成后关闭。
9void commit() 提交所有更改(增加、删除文档,段合并,增加索引等)到索引缓存,并写入文件,以便内存消失能够在文件里读取。
10void commit(Map<String,String> commitUserData)提交所有更改索引,指定commitUserData映射(字符串 - >字符串)
11void deleteAll()删除索引中的索引document对象(commit后索引文件才会变化,此时只是改变内存值)。
12void deleteDocuments(Query... queries)根据任一Query条件删除document对象
13void deleteDocuments(Query query) 根据Query条件删除document对象
14void deleteDocuments(Term... terms) 根据任一的Trem删除docuemnt对象
15void deleteDocuments(Term term) 根据Trem删除docuemnt对象
16void deleteUnusedFiles() 删除任何不再使用的索引文件
17protected void doAfterFlush() 在Directory已经删除或者增加document,但是还未提交时(新的段文件segments_N已经写入),会调用此钩子方法
18protected void doBeforeFlush() 在Directory未删除或者增加document时,会调用此钩子方法
19protected void ensureOpen()判断IndexWriter是否已经被关闭
20protected void ensureOpen(boolean includePendingClose) 在内部使用,判断IndexWriter是否已经被关闭,如果已经关闭会抛出AlreadyClosedException异常
21protected void flush(boolean triggerMerge, boolean applyAllDeletes) 同步所有内存中的变更(增加,删除)到Directory
22protected void flush(boolean triggerMerge, boolean flushDocStores, boolean flushDeletes)  注:flushDocStores现在忽略(hardwired为true);这种方法在这里向后兼容
23void forceMerge(int maxNumSegments)  强制合并<= maxNumSegments的所有段
24void forceMerge(int maxNumSegments, boolean doWait) 同上,doWait=false,不会等待,但合并工作是在后台完成的。
25void forceMergeDeletes()合并所有段中已经被删除的documents
26void forceMergeDeletes(boolean doWait) 同上,doWait=false,不会等待,但合并工作是在后台完成的。
27Analyzer getAnalyzer() 返回此索引所用的分析器
28IndexWriterConfig getConfig() 返回一个私有的IndexWriterConfig,并复制一份传递到IndexWriter(Directory,IndexWriterConfig)中去。(要看下源码,为什么这样)
29static PrintStream getDefaultInfoStream()从最近被实例化的IndexWriters中,返回默认的infoStream。
30Directory getDirectory() 返回当前索引所使用的Directory
31PrintStream getInfoStream()从当前正在使用的writer获取infoStream
32Collection<SegmentInfo> getMergingSegments() 注:被 MergePolicy使用,获取已经合并的段。
33MergePolicy.OneMerge getNextMerge()注:被MergeScheduler,取得下一个将要被MergePolicy中合并的段。
34PayloadProcessorProvider getPayloadProcessorProvider() 返回一个PayloadProcessorProvider,提供跳转表合并使用
35boolean hasDeletions()不知道用在哪,没写
36static boolean isLocked(Directory directory) 当且仅当索引在指定的directory 目前被锁定,则返回true
37int maxDoc()返回索引中文档的总数,包含还在缓存中(未flushed)的数据,不包含已经删除的。
38void maybeMerge() 查看mergePolicy是否需要合并,如果有就一直合并直到没有为止
39void merge(MergePolicy.OneMerge merge) 合并在栈中指定的段,变成一个段
40void message(String message) 将信息打印到infoStream(信息输出流,console等), 线程调用前缀所指定的writer
41int numDeletedDocs(SegmentInfo info)在reader池中获取删除的全部文档个数
42int numDocs() 返回索引中文档的总数,包含还在缓存中(未flushed)的数据,包含已经删除的
43int numRamDocs() 注:获取当前内存中全部的document个数
44void prepareCommit()在commit之前将被调用
45void prepareCommit(Map<String,String> commitUserData) 在commit之前将被调用,参数是存储将记录到段中的索引。
46long ramSizeInBytes()  返回当前在内存中缓存的所有索引文件的总大小
47void rollback()  关闭IndexWriter而不提交自上次发生的任何改变提交(或因为它被打开,如果提交没有被调用)
48String segString()
49String segString(Iterable<SegmentInfo> infos)
50String segString(SegmentInfo info)
51static void setDefaultInfoStream(PrintStream infoStream) 如果参数不为空,将会在IndexWriter中使用他(参数用作输出流,比如console)。
52void setInfoStream(PrintStream infoStream) 在增、删、改、合并产生的maxFieldLength信息将在此打印
53void setPayloadProcessorProvider(PayloadProcessorProvider pcp) 当使用到跳转表时将用到此 PayloadProcessorProvider
54static void unlock(Directory directory) 在directory中根据name解锁
55void updateDocument(Term term, Document doc) 根据term删除documents再增加一个document
56void updateDocument(Term term, Document doc, Analyzer analyzer) 同上
57void updateDocuments(Term delTerm, Collection<Document> docs) 先根据delTerm删除documents再增加一整块的docs(同时被外部reader可见或不可见);
58void updateDocuments(Term delTerm, Collection<Document> docs, Analyzer analyzer) 其他同上,只是增加document使用参数提供的分词器
59boolean verbose()是否启用verbosing,也就是有没有设置自己的输出(infoStream)
60void waitForMerges() 等待当前未合并的合并完成


分享到:
评论

相关推荐

    vb.net2.0_Lucene_test.rar_lucene_lucene vb.n_lucene.net vb

    标题中的“vb.net2.0_Lucene_test.rar_lucene_lucene vb.n_lucene.net vb”表明这是一个关于使用VB.NET 2.0版本实现Lucene搜索引擎的测试项目。Lucene是一个高性能、全文本搜索库,广泛应用于Java开发,而这里则是将...

    java+lucene)1236.rar_Lucene 搜索_Luncene_lucene_lucene web

    【标题】"java+lucene)1236.rar_Lucene 搜索_Luncene_lucene_lucene web" 提供的信息表明这是一个使用Java和Lucene框架实现的搜索系统,特别是针对公交数据的搜索。Lucene是Apache软件基金会的一个开源全文检索库,...

    lucene_in_action中文版

    lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版lucene_in_action中文版

    ssd.rar_lucene_搜索 lucene_搜索引擎_文本搜索

    在"ssd.rar_lucene_搜索 lucene_搜索引擎_文本搜索"这个项目中,我们看到的是一个利用Lucene实现的桌面搜索引擎实例。 **文本搜索的基本原理** 文本搜索的核心在于将非结构化的文本数据转换成结构化的索引形式,...

    lucene_cn.jar

    《Lucene_CN.jar:中文语言分析器的深度解析》 在信息技术日新月异的今天,搜索引擎和文本处理系统在各个领域中发挥着至关重要的作用。Lucene_CN.jar,这个名字或许对许多开发者来说并不陌生,它是一个专为中文语言...

    基于C#+asp.net+sqlserver的搜索引擎设计与实现(源码+文档).net_ajax_lucene_搜索引擎.zip

    资源名字:基于C#+asp.net+sqlserver的搜索引擎设计与实现(源码+文档)_.net_ajax_lucene_搜索引擎.zip 资源内容:项目全套源码+完整文档 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 适合场景:...

    Lucene资料大全(包括Lucene_in_Action书等)

    标题"Lucene资料大全(包括Lucene_in_Action书等)"表明这是一个包含全面Lucene学习资源的集合,其中最显著的是《Lucene_in_Action》这本书。这是一本广泛认可的关于Apache Lucene的权威指南,通常被简称为LIA,它深入...

    Lucene_in_Action(中文版).pdf

    Lucene_in_Action(中文版).pdf Lucene in Action(中文版) ----------------------------------------- Lucene in Action 中文版 第一部分 Lucene 核心 1. 接触 Lucene 2. 索引 3. 为程序添加搜索 4. ...

    chinese_lucene.rar_Lucene C#_Lucene for .net_PanGu4Lucene_lucene

    在“chinese_lucene.rar”压缩包中,除了上述的分词库和Lucene.Net之外,还可能包含示例代码、文档资料等,帮助开发者快速理解和上手。这些资源对于初学者和有经验的开发者都极具价值,不仅可以学习如何在C#环境下...

    Lucene_3.6.2_api帮助文档

    核心 Lucene3.6_api.chm 放心下载

    lucene_web项目应用实例

    本文将深入探讨一个名为“lucene_web”的项目,它是基于Lucene实现的一个Web应用程序实例,旨在帮助开发者更好地理解和运用Lucene进行Web开发。 首先,我们要明白Lucene的核心功能。Lucene提供了一套完整的搜索索引...

    lucene_jar包

    这个"lucene_jar包"包含了Lucene的核心组件,是开发者构建搜索功能的基础。在Java开发环境中,jar(Java Archive)包是将多个类文件打包在一起的格式,方便在不同项目中复用和部署。 **1. Lucene简介** Lucene最初...

    Lucene_in_ Action

    Lucene_in_Action english版

    lucenevideao(eddy).rar_Lucene.net a_eddy_lucene_lucene web_luce

    这个名为“lucenevideao(eddy).rar_Lucene.net a_eddy_lucene_lucene web_luce”的资源,包含了一份由Eddy精心制作的Lucene.NET视频教程,以及相关的学习材料,是深入理解和应用Lucene.NET的好帮手。 首先,视频...

    JAVA_Lucene_in_Action教程完整版

    ### JAVA_Lucene_in_Action教程知识点概述 #### 一、Lucene简介与背景 - **Lucene的起源**:Lucene最初作为一个私有项目由Doug Cutting创建于1997年末,目的是为了学习Java并尝试创建搜索软件。由于缺乏销售经验,...

    Lucene_in_ Action java search engine.PDF 搜索引擎教程

    Lucene_in_ Action java search engine.PDF 搜索引擎教程

Global site tag (gtag.js) - Google Analytics