IndexWriter
此类充当核心组件,在索引过程中创建/更新索引。
类声明
以下是org.apache.lucene.index.IndexWriter类的声明 -
public class IndexWriter
extends Object
implements Closeable, TwoPhaseCommit
字段 (Field)
以下是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。
类构造函数 (Class Constructors)
下表显示了IndexWriter的类构造函数 -
S.No. | 构造函数和描述 |
---|---|
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。 |
Class Methods
S.No. | 方法和描述 |
---|---|
1 | void addDocument(Document doc) 将文档添加到此索引。 |
2 | void addDocument(Document doc, Analyzer analyzer) 使用提供的分析器而不是getAnalyzer()的值将文档添加到此索引。 |
3 | void addDocuments(Collection docs) void addDocuments(Collection docs) 原子地添加具有顺序分配的文档ID的文档块,使得外部读取器将看到所有文档或不看到任何文档。 |
4 | void addDocuments(Collection docs, Analyzer analyzer) void addDocuments(Collection 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() 将所有挂起的更改(添加和删除的文档,段合并,添加的索引等)提交到索引,并同步所有引用的索引文件,以便读者可以看到更改,并且索引更新将在操作系统或计算机崩溃或电力流失。 |
11 | void commit(Map《String,String》 commitUserData) 提交对索引的所有更改,指定commitUserData Map(String> String)。 |
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) 如果此IndexWriter已关闭,则在内部用于抛出AlreadyClosedException。 |
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() 返回此索引使用的分析器。 |
31 | IndexWriterConfig getConfig() 返回从传递给IndexWriter(Directory,IndexWriterConfig)的IndexWriterConfig克隆的私有IndexWriterConfig。 |
32 | static PrintStream getDefaultInfoStream() 返回新实例化的IndexWriters的当前默认infoStream。 |
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用于为已经合并的段选择合并的void。 |
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(如果为非null),前缀为此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 Map(String - > String)。 |
69 | long ramSizeInBytes() 专家:返回当前缓存在内存中的所有索引文件的总大小。 |
70 | void rollback() 关闭IndexWriter而不提交自上次提交以来发生的任何更改(或者自打开以来,如果尚未调用commit)。 |
71 | String segString() |
72 | String segString(Iterable《SegmentInfo》 infos) |
73 | String segString(SegmentInfo info) |
74 | static void setDefaultInfoStream(PrintStream infoStream) 如果为非null,则这将是新实例化的IndexWriter使用的默认infoStream。 |
75 | static void setDefaultWriteLockTimeout(long writeLockTimeout) 已过时。 请改用IndexWriterConfig.setDefaultWriteLockTimeout(long)。 |
76 | void setInfoStream(PrintStream infoStream) 如果为非null,则将显示有关合并,删除和达到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() 等待任何当前未完成的合并完成。 |
方法继承 (Methods Inherited)
该类继承以下类中的方法 -
- java.lang.Object