发布于 2015-07-25 11:22:27 | 207 次阅读 | 评论: 0 | 来源: 网络整理
此类充当创造/在索引过程中更新指标的核心组成部分。
以下是 org.apache.lucene.index.IndexWriter 类的声明:
public class IndexWriter
extends Object
implements Closeable, TwoPhaseCommit
以下是 org.apache.lucene.index.IndexWriter 类的字段:
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 -- 弃用. 使用 IndexWriterConfig.DISABLE_AUTO_FLUSH 代替.
static int MAX_TERM_LENGTH
static String WRITE_LOCK_NAME -- 在索引写入锁的名称。
static long WRITE_LOCK_TIMEOUT -- 已弃用,使用 IndexWriterConfig.WRITE_LOCK_TIMEOUT 代替.
S.N. | 构造函数和说明 |
---|---|
1 | IndexWriter(Directory d, Analyzer a, boolean create, IndexDeletionPolicy deletionPolicy, IndexWriter.MaxFieldLength mfl) 弃用,使用 IndexWriter(Directory, IndexWriterConfig) 代替. |
2 | IndexWriter(Directory d, Analyzer a, boolean create, IndexWriter.MaxFieldLength mfl) 弃用,使用 IndexWriter(Directory, IndexWriterConfig) 代替. |
3 | IndexWriter(Directory d, Analyzer a, IndexDeletionPolicy deletionPolicy, IndexWriter.MaxFieldLength mfl) 弃用,使用 IndexWriter(Directory, IndexWriterConfig) 代替. |
4 | IndexWriter(Directory d, Analyzer a, IndexDeletionPolicy deletionPolicy, IndexWriter.MaxFieldLength mfl, IndexCommit commit) 弃用,使用 IndexWriter(Directory, IndexWriterConfig) 代替. |
5 | IndexWriter(Directory d, Analyzer a, IndexWriter.MaxFieldLength mfl) 弃用,使用 IndexWriter(Directory, IndexWriterConfig) 代替. |
6 | IndexWriter(Directory d, IndexWriterConfig conf) 每个构造由 conf 中给出的设置一个新的IndexWriter。 |
S.N. | 方法 & 描述 |
---|---|
1 | void addDocument(Document doc) 此索引增加了一个文件 |
2 | void addDocument(Document doc, Analyzer analyzer) 增加了一个文件,这个索引使用所提供的analyzer,而不是getAnalyzer()的值 |
3 | void addDocuments(Collection<Document> docs) 原子增加了使用顺序分配的文档ID,以使得外部读取器将显示所有的文件或无文件的块。 |
4 | void addDocuments(Collection<Document> docs, Analyzer analyzer) 原子增加了文件块,分析使用提供的分析,使用顺序分配文件的ID,这样外部的读取器会看到全或无的文件。 |
5 | void addIndexes(Directory... dirs) 从索引数组将所有片段添加到这个索引。 |
6 | void addIndexes(IndexReader... readers) 合并所提供的索引到这个索引。 |
7 | void addIndexesNoOptimize(Directory... dirs) 弃用. 使用 addIndexes(Directory...) 代替 |
8 | void close() 提交所有更改索引并关闭所有相关文件。 |
9 | void close(boolean waitForMerges) 关闭索引有或没有等待目前正在运行的合并来完成。 |
10 | void commit() 提交所有挂起的更改(添加和删除文件,段合并,添加索引等),以索引,并同步所有引用索引文件,这样,读取器将会看到的变化和索引的更新将生存的OS或机器崩溃或功率损耗。 |
11 | void commit(Map<String,String> commitUserData) 提交所有更改索引,指定commitUserData映射(字符串 - >字符串)。 |
12 | void deleteAll() 删除索引中的所有文件。 |
13 | void deleteDocuments(Query... queries) 删除文件匹配提供的任何查询。 |
14 | void deleteDocuments(Query query) 删除文件匹配提供的查询。 |
15 | void deleteDocuments(Term... terms) 删除包含任何条款的文件(多个)。 |
16 | void deleteDocuments(Term term) 删除包含长期的文件(多个)。 |
17 | void deleteUnusedFiles() 删除任何不再使用的索引文件。 |
18 | protected void doAfterFlush() 钩子扩展类悬而未决添加和删除文件后执行操作已经刷新到目录,但提交了更改之前(新segments_N文件写入)。 |
19 | protected void doBeforeFlush() 钩子扩展类悬而未决添加和删除文件前执行操作刷新到目录。 |
20 | protected void ensureOpen() |
21 | protected void ensureOpen(boolean includePendingClose) 内部使用抛出AlreadyClosedException,如果IndexWriter已经关闭。 |
22 | void expungeDeletes() 不推荐使用 |
23 | void expungeDeletes(boolean doWait) 不推荐使用 |
24 | protected void flush(boolean triggerMerge, boolean applyAllDeletes) 刷新都在内存中缓冲更新(添加和删除)目录 |
25 | protected void flush(boolean triggerMerge, boolean flushDocStores, boolean flushDeletes) 注:flushDocStores现在忽略(hardwired为true);这种方法在这里向后兼容性 |
26 | void forceMerge(int maxNumSegments) 强制合并的政策合并段,直到有<= maxNumSegments。 |
27 | void forceMerge(int maxNumSegments, boolean doWait) 就像forceMerge(int), 除非指定调用是否应该阻止,直到所有的合并结束。 |
28 | void forceMergeDeletes() 强制已删除文档中的所有段合并。 |
29 | void forceMergeDeletes(boolean doWait) 就像forceMergeDeletes(),除非可以指定调用是否应该阻塞,直到操作完成。 |
30 | Analyzer getAnalyzer() 返回此索引的 analyzer。 |
31 | IndexWriterConfig getConfig() 返回private IndexWriterConfig,从IndexWriterConfig克隆传递给 IndexWriter(Directory, IndexWriterConfig). |
32 | static PrintStream getDefaultInfoStream() 返回当前的默认infoStream 刚刚被实例化IndexWriters。 |
33 | static long getDefaultWriteLockTimeout() 不推荐使用。使用IndexWriterConfig.getDefaultWriteLockTimeout()代替 |
34 | Directory getDirectory() 返回此索引目录。 |
35 | PrintStream getInfoStream() 通过此 writer 返回当前 infoStream 使用 |
36 | int getMaxBufferedDeleteTerms() 不推荐使用。使用IndexWriterConfig.getMaxBufferedDeleteTerms()代替 |
37 | int getMaxBufferedDocs() 不推荐使用。使用IndexWriterConfig.getMaxBufferedDocs()代替 |
38 | int getMaxFieldLength() 不推荐使用。使用LimitTokenCountAnalyzer限制令牌的数量 |
39 | int getMaxMergeDocs() 不推荐使用。使用LogMergePolicy.getMaxMergeDocs()代替 |
40 | IndexWriter.IndexReaderWarmer getMergedSegmentWarmer() 不推荐使用。使用IndexWriterConfig.getMergedSegmentWarmer()代替 |
41 | int getMergeFactor() 不推荐使用。使用LogMergePolicy.getMergeFactor()代替 |
42 | MergePolicy getMergePolicy() 不推荐使用。使用IndexWriterConfig.getMergePolicy()代替 |
43 | MergeScheduler getMergeScheduler() 不推荐使用。使用 IndexWriterConfig.getMergeScheduler() 代替 |
44 | Collection<SegmentInfo> getMergingSegments() 使用一个MergePolicy到空隙选择合并为已被合并的段。 |
45 | MergePolicy.OneMerge getNextMerge() MergeScheduler调用此方法来检索由MergePolicy要求在未来合并 |
46 | PayloadProcessorProvider getPayloadProcessorProvider() 返回一个段期间使用PayloadProcessorProvider合并处理的有效载荷 |
47 | double getRAMBufferSizeMB() 不推荐使用。使用IndexWriterConfig.getRAMBufferSizeMB()代替 |
48 | IndexReader getReader() 不推荐使用。使用 IndexReader.open(IndexWriter,boolean) 代替. |
49 | IndexReader getReader(int termInfosIndexDivisor) 不 推荐使用。使用 IndexReader.open(IndexWriter,boolean) 代替.此外,这种方法不能保证在读取器(和它的子读取 器)将被打开,并在termInfosIndexDivisor设置,因为其中的一些可能已经根据 IndexWriterConfig.setReaderTermsIndexDivisor(int)打开。应该通过 IndexWriterConfig.setReaderTermsIndexDivisor(int)设置请求使用 termInfosIndexDivisor和getReader()。 |
50 | int getReaderTermsIndexDivisor() 不推荐使用。使用IndexWriterConfig.getReaderTermsIndexDivisor()代替 |
51 | Similarity getSimilarity() 不推荐使用。使用 IndexWriterConfig.getSimilarity() 代替 |
52 | int getTermIndexInterval() 不推荐使用。使用IndexWriterConfig.getTermIndexInterval() |
53 | boolean getUseCompoundFile() 不推荐使用。使用 LogMergePolicy.getUseCompoundFile() |
54 | long getWriteLockTimeout() 不推荐使用。使用 IndexWriterConfig.getWriteLockTimeout() |
55 | boolean hasDeletions() |
56 | static boolean isLocked(Directory directory) 当且仅当索引在指定的目录目前被锁定,则返回true。 |
57 | int maxDoc() 返回文档的此索引总数,包括文档尚未刷新(仍然在RAM缓冲器),不计算缺失。 |
58 | void maybeMerge() 询问 mergePolicy 任何合并是否有需要现在,如果是,运行所需的合并,然后进行迭代(测试再次如果需要合并),直到没有更多的合并被 mergePolicy 返回。 |
59 | void merge(MergePolicy.OneMerge merge) 合并所指示的段,用单段替换它们在栈中 |
60 | void message(String message) 打印一条消息infoStream(如果非空),前缀为此writer识别信息,并且在调用它的线程 |
61 | int numDeletedDocs(SegmentInfo info) 获得删除文档的数量汇集读取器 |
62 | int numDocs() 返回文档的此索引总数,包括文档尚未刷新(仍然在RAM缓冲器),并包括缺失 |
63 | int numRamDocs() 返回当前在RAM中缓冲的文档的数量 |
64 | void optimize() 不推荐使用 |
65 | void optimize(boolean doWait) 不推荐使用 |
66 | void optimize(int maxNumSegments) 不推荐使用 |
67 | void prepareCommit() 为提交做准备 |
68 | void prepareCommit(Map<String,String> commitUserData) 为提交做准备,指定commitUserData映射(字符串 - >字符串) |
69 | long ramSizeInBytes() 目前返回在内存中缓存的所有索引文件的总大小 |
70 | void rollback() 关闭IndexWriter而不提交自上次发生的任何改变提交(或因为它被打开,如果提交没有被调用)。 |
71 | String segString() |
72 | String segString(Iterable<SegmentInfo> infos) |
73 | String segString(SegmentInfo info) |
74 | static void setDefaultInfoStream(PrintStream infoStream) 如果非空,这将是使用一个新实例化IndexWriter默认infoStream。 |
75 | static void setDefaultWriteLockTimeout(long writeLockTimeout) 不推荐使用。使用IndexWriterConfig.setDefaultWriteLockTimeout(long)代替 |
76 | void setInfoStream(PrintStream infoStream) 如果非空,有关合并,删除时MaxFieldLength到达的消息信息将被打印到这一点 |
77 | void setMaxBufferedDeleteTerms(int maxBufferedDeleteTerms) 不推荐使用。使用 IndexWriterConfig.setMaxBufferedDeleteTerms(int) 代替. |
78 | void setMaxBufferedDocs(int maxBufferedDocs) 不推荐使用。使用 IndexWriterConfig.setMaxBufferedDocs(int) 代替. |
79 | void setMaxFieldLength(int maxFieldLength) 不推荐使用。使用 LimitTokenCountAnalyzer 代替. 需要注意的是行为略有改变- 分析器限制每个创建令牌流的令牌的数量,而此设置限制令牌索引的总数。这只是问题只有在索引多值的字段。 |
80 | void setMaxMergeDocs(int maxMergeDocs) 不推荐使用。使用 LogMergePolicy.setMaxMergeDocs(int) 代替. |
81 | void setMergedSegmentWarmer(IndexWriter.IndexReaderWarmer warmer) 不推荐使用。使用 IndexWriterConfig.setMergedSegmentWarmer( org.apache.lucene.index.IndexWriter.IndexReaderWarmer ) 代替. |
82 | void setMergeFactor(int mergeFactor) 不推荐使用。使用 LogMergePolicy.setMergeFactor(int) 代替. |
83 | void setMergePolicy(MergePolicy mp) 不推荐使用。使用 IndexWriterConfig.setMergePolicy(MergePolicy) 代替. |
84 | void setMergeScheduler(MergeScheduler mergeScheduler) 不推荐使用。使用 IndexWriterConfig.setMergeScheduler(MergeScheduler) 代替 |
85 | void setPayloadProcessorProvider(PayloadProcessorProvider pcp) 设置合并有效负载时使用PayloadProcessorProvider。 |
86 | void setRAMBufferSizeMB(double mb) 不推荐使用。使用 IndexWriterConfig.setRAMBufferSizeMB(double) 代替. |
87 | void setReaderTermsIndexDivisor(int divisor) 不推荐使用。使用 IndexWriterConfig.setReaderTermsIndexDivisor(int) 代替. |
88 | void setSimilarity(Similarity similarity) 不推荐使用。使用 IndexWriterConfig.setSimilarity(Similarity) 代替 |
89 | void setTermIndexInterval(int interval) 不推荐使用。使用 IndexWriterConfig.setTermIndexInterval(int) |
90 | void setUseCompoundFile(boolean value) 不推荐使用。使用 LogMergePolicy.setUseCompoundFile(boolean). |
91 | void setWriteLockTimeout(long writeLockTimeout) 不推荐使用。使用IndexWriterConfig.setWriteLockTimeout(long)代替 |
92 | static void unlock(Directory directory) 强行解锁指数在指定的目录 |
93 | void updateDocument(Term term, Document doc) 首先删除包含term文件,然后添加新文档更新文档 |
94 | void updateDocument(Term term, Document doc, Analyzer analyzer) 首先删除包含 term 文件,然后添加新文档更新文档 |
95 | void updateDocuments(Term delTerm, Collection<Document> docs) 原子删除文件相匹配的设置delTerm,并增加了与顺序分配的文档ID,以使得外部读取器将显示所有的文件或无文件的块 |
96 | void updateDocuments(Term delTerm, Collection<Document> docs, Analyzer analyzer) 原子删除文件匹配提供delTerm,并增加了文件块,分析,使用所提供的分析,有顺序分配文件ID,这样外部的读取器可以看到全或无的文件 |
97 | boolean verbose() 如果verbosing启用返回true(即infoStream! |
98 | void waitForMerges() 等待任何当前未合并结束 |
这个类从以下类继承的方法:
java.lang.Object