Lucene IndexWriter類
此類充當創造/在索引過程中更新指標的核心組成部分。
類聲明
以下是 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