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 docs)
原子增加了使用順序分配的文檔ID,以使得外部讀取器將顯示所有的文件或無文件的塊。

4

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()
提交所有掛起的更改(添加和刪除文件,段合併,添加索引等),以索引,並同步所有引用索引文件,這樣,讀取器將會看到的變化和索引的更新將生存的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 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 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 docs)
原子刪除文件相匹配的設置delTerm,並增加了與順序分配的文檔ID,以使得外部讀取器將顯示所有的文件或無文件的塊

96

void updateDocuments(Term delTerm, Collection docs, Analyzer analyzer)
原子刪除文件匹配提供delTerm,並增加了文件塊,分析,使用所提供的分析,有順序分配文件ID,這樣外部的讀取器可以看到全或無的文件

97

boolean verbose()
如果verbosing啓用返回true(即infoStream!

98

void waitForMerges()
等待任何當前未合併結束

方法繼承

這個類從以下類繼承的方法:

  • java.lang.Object