此类充当创造/在索引过程中更新指标的核心组成部分。
类声明
以下是 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