此類充當(dāng)創(chuàng)造/在索引過程中更新指標(biāo)的核心組成部分。
以下是 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 -- 棄用. 請(qǐng)查看 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. | 構(gòu)造函數(shù)和說明 |
|---|---|
| 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) 每個(gè)構(gòu)造由 conf 中給出的設(shè)置一個(gè)新的IndexWriter。 |
| S.N. | 方法 & 描述 |
|---|---|
| 1 |
void addDocument(Document doc) 此索引增加了一個(gè)文件 |
| 2 |
void addDocument(Document doc, Analyzer analyzer) 增加了一個(gè)文件,這個(gè)索引使用所提供的analyzer,而不是getAnalyzer()的值 |
| 3 |
void addDocuments(Collection<Document> docs) 原子增加了使用順序分配的文檔ID,以使得外部讀取器將顯示所有的文件或無文件的塊。 |
| 4 |
void addDocuments(Collection<Document> docs, Analyzer analyzer) 原子增加了文件塊,分析使用提供的分析,使用順序分配文件的ID,這樣外部的讀取器會(huì)看到全或無的文件。 |
| 5 |
void addIndexes(Directory... dirs) 從索引數(shù)組將所有片段添加到這個(gè)索引。 |
| 6 |
void addIndexes(IndexReader... readers) 合并所提供的索引到這個(gè)索引。 |
| 7 |
void addIndexesNoOptimize(Directory... dirs) 棄用. 使用 addIndexes(Directory...) 代替 |
| 8 |
void close() 提交所有更改索引并關(guān)閉所有相關(guān)文件。 |
| 9 |
void close(boolean waitForMerges) 關(guān)閉索引有或沒有等待目前正在運(yùn)行的合并來完成。 |
| 10 |
void commit() 提交所有掛起的更改(添加和刪除文件,段合并,添加索引等),以索引,并同步所有引用索引文件,這樣,讀取器將會(huì)看到的變化和索引的更新將生存的OS或機(jī)器崩潰或功率損耗。 |
| 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) 刪除包含任何條款的文件(多個(gè))。 |
| 16 |
void deleteDocuments(Term term) 刪除包含長期的文件(多個(gè))。 |
| 17 |
void deleteUnusedFiles() 刪除任何不再使用的索引文件。 |
| 18 |
protected void doAfterFlush() 鉤子擴(kuò)展類懸而未決添加和刪除文件后執(zhí)行操作已經(jīng)刷新到目錄,但提交了更改之前(新segments_N文件寫入)。 |
| 19 |
protected void doBeforeFlush() 鉤子擴(kuò)展類懸而未決添加和刪除文件前執(zhí)行操作刷新到目錄。 |
| 20 | protected void ensureOpen() |
| 21 |
protected void ensureOpen(boolean includePendingClose) 內(nèi)部使用拋出AlreadyClosedException,如果IndexWriter已經(jīng)關(guān)閉。 |
| 22 |
void expungeDeletes() 不推薦使用 |
| 23 |
void expungeDeletes(boolean doWait) 不推薦使用 |
| 24 |
protected void flush(boolean triggerMerge, boolean applyAllDeletes) 刷新都在內(nèi)存中緩沖更新(添加和刪除)目錄 |
| 25 |
protected void flush(boolean triggerMerge, boolean flushDocStores, boolean flushDeletes) 注:flushDocStores現(xiàn)在忽略(hardwired為true);這種方法在這里向后兼容性 |
| 26 |
void forceMerge(int maxNumSegments) 強(qiáng)制合并的政策合并段,直到有<= maxNumSegments。 |
| 27 |
void forceMerge(int maxNumSegments, boolean doWait) 就像forceMerge(int), 除非指定調(diào)用是否應(yīng)該阻止,直到所有的合并結(jié)束。 |
| 28 |
void forceMergeDeletes() 強(qiáng)制已刪除文檔中的所有段合并。 |
| 29 |
void forceMergeDeletes(boolean doWait) 就像forceMergeDeletes(),除非可以指定調(diào)用是否應(yīng)該阻塞,直到操作完成。 |
| 30 |
Analyzer getAnalyzer() 返回此索引的 analyzer。 |
| 31 |
IndexWriterConfig getConfig() 返回private IndexWriterConfig,從IndexWriterConfig克隆傳遞給 IndexWriter(Directory, IndexWriterConfig). |
| 32 |
static PrintStream getDefaultInfoStream() 返回當(dāng)前的默認(rèn)infoStream 剛剛被實(shí)例化IndexWriters。 |
| 33 |
static long getDefaultWriteLockTimeout() 不推薦使用。使用IndexWriterConfig.getDefaultWriteLockTimeout()代替 |
| 34 |
Directory getDirectory() 返回此索引目錄。 |
| 35 |
PrintStream getInfoStream() 通過此 writer 返回當(dāng)前 infoStream 使用 |
| 36 |
int getMaxBufferedDeleteTerms() 不推薦使用。使用IndexWriterConfig.getMaxBufferedDeleteTerms()代替 |
| 37 |
int getMaxBufferedDocs() 不推薦使用。使用IndexWriterConfig.getMaxBufferedDocs()代替 |
| 38 |
int getMaxFieldLength() 不推薦使用。使用LimitTokenCountAnalyzer限制令牌的數(shù)量 |
| 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() 使用一個(gè)MergePolicy到空隙選擇合并為已被合并的段。 |
| 45 |
MergePolicy.OneMerge getNextMerge() MergeScheduler調(diào)用此方法來檢索由MergePolicy要求在未來合并 |
| 46 |
PayloadProcessorProvider getPayloadProcessorProvider() 返回一個(gè)段期間使用PayloadProcessorProvider合并處理的有效載荷 |
| 47 |
double getRAMBufferSizeMB() 不推薦使用。使用IndexWriterConfig.getRAMBufferSizeMB()代替 |
| 48 |
IndexReader getReader() 不推薦使用。使用 IndexReader.open(IndexWriter,boolean) 代替. |
| 49 |
IndexReader getReader(int termInfosIndexDivisor) 不推薦使用。使用 IndexReader.open(IndexWriter,boolean) 代替.此外,這種方法不能保證在讀取器(和它的子讀取器)將被打開,并在termInfosIndexDivisor設(shè)置,因?yàn)槠渲械囊恍┛赡芤呀?jīng)根據(jù)IndexWriterConfig.setReaderTermsIndexDivisor(int)打開。應(yīng)該通過IndexWriterConfig.setReaderTermsIndexDivisor(int)設(shè)置請(qǐng)求使用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) 當(dāng)且僅當(dāng)索引在指定的目錄目前被鎖定,則返回true。 |
| 57 |
int maxDoc() 返回文檔的此索引總數(shù),包括文檔尚未刷新(仍然在RAM緩沖器),不計(jì)算缺失。 |
| 58 |
void maybeMerge() 詢問 mergePolicy 任何合并是否有需要現(xiàn)在,如果是,運(yùn)行所需的合并,然后進(jìn)行迭代(測試再次如果需要合并),直到?jīng)]有更多的合并被 mergePolicy 返回。 |
| 59 |
void merge(MergePolicy.OneMerge merge) 合并所指示的段,用單段替換它們?cè)跅V?/td> |
| 60 |
void message(String message) 打印一條消息infoStream(如果非空),前綴為此writer識(shí)別信息,并且在調(diào)用它的線程 |
| 61 |
int numDeletedDocs(SegmentInfo info) 獲得刪除文檔的數(shù)量匯集讀取器 |
| 62 |
int numDocs() 返回文檔的此索引總數(shù),包括文檔尚未刷新(仍然在RAM緩沖器),并包括缺失 |
| 63 |
int numRamDocs() 返回當(dāng)前在RAM中緩沖的文檔的數(shù)量 |
| 64 |
void optimize() 不推薦使用 |
| 65 | 上一篇:Lucene FuzzyQuery類下一篇:Lucene刪除文檔操作 |