Lucene-indexwriter

提供:Dev Guides
移動先:案内検索

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を使用してください。

クラスコンストラクター

次の表は、IndexWriterのクラスコンストラクターを示しています-

S.No. Constructor & Description
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.No. Method & Description
1

void addDocument(Document doc)

このインデックスにドキュメントを追加します。

2

void addDocument(Document doc, 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()

保留中のすべての変更(追加および削除されたドキュメント、セグメントのマージ、追加されたインデックスなど)をインデックスにコミットし、参照されているすべてのインデックスファイルを同期します。電力損失。

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()

追加および削除された保留中のドキュメントがディレクトリにフラッシュされた後、変更がコミットされる(新しいセグメント_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)

NOTE flushDocStores is ignored now (hardwired to true); this method is only here for backwards compatibility.

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()

新しくインスタンス化されたIndexWriterの現在のデフォルトのinfoStreamを返します。

33

static long getDefaultWriteLockTimeout()

廃止予定です。 代わりにIndexWriterConfig.getDefaultWriteLockTimeout()を使用してください。

34

Directory getDirectory()

このインデックスで使用されるディレクトリを返します。

35

PrintStream getInfoStream()

このライターが使用中の現在の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)を使用してください。 さらに、このメソッドは、一部のリーダーがIndexWriterConfig.setReaderTermsIndexDivisor(int)に従ってすでに開かれている可能性があるため、リーダー(およびそのサブリーダー)がtermInfosIndexDivisor設定で開かれることを保証できません。 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)

infoWriterにメッセージを出力します(nullでない場合)。このライターとそれを呼び出しているスレッドの識別情報を前に付けます。

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マップ(String→ String)を指定して、コミットの準備をします。

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)*

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)

最初に用語を含むドキュメントを削除してから新しいドキュメントを追加することにより、ドキュメントを更新します。

94

void updateDocument(Term term, Document doc, Analyzer analyzer)

最初に用語を含むドキュメントを削除してから新しいドキュメントを追加することにより、ドキュメントを更新します。

95

void updateDocuments(Term delTerm, Collection<Document> docs)

提供された delTerm に一致するドキュメントを原子的に削除し、ドキュメントIDが順番に割り当てられたドキュメントのブロックを追加します。これにより、外部リーダーがドキュメントをすべて表示するか、まったく表示しないようにします。

96

void updateDocuments(Term delTerm, Collection<Document> docs, Analyzer analyzer)

提供されたdelTermに一致するドキュメントを原子的に削除し、提供されたアナライザーを使用して分析されたドキュメントのブロックを追加します。

97

boolean verbose()

詳細表示が有効な場合(つまり、infoStream)にtrueを返します

98

void waitForMerges()

現在未解決のマージが完了するまで待機します。

継承されるメソッド

このクラスは、次のクラスからメソッドを継承します-

  • java.lang.Object