lucence索引类

Lucence索引类


Indexing

常用索引进程类的列表:

num sr.no 类及描述
1 IndexWriter 此类充当创造/在索引过程中更新指标的核心部分
2 Directory 此类表示索引的存储位置
3 Analyzer Analyzer类负责分析一个文件,并将被索引的文本获取令牌/字。不加分析完成后,IndexWriter不能创建索引。
4 Document Document代表一个虚拟文档与字段,其中字段是可包含在物理文档的内容,元数据等对象。Analyzer只能理解文档
5 Field Field是最低单元或索引过程的起点。他代表其中一个键用于识别被索引的键值对关系。用于表示一个文件内容的字段将具有键为“内容”,值可以包含文本或文档的数字内容的部分或全部。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 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 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() 等待任何当前未合并结束

Directory

Directory类表示索引的存储位置,并通常是文件的列表。这些文件被称为索引文件。索引文件通常创建一次,然后用于读操作或可以被删除。

类声明

以下是org.apache.lucene.store.Directory类的声明:

public abstract class Directory
   extends Object
      implements Closeable
字段

以下是org.apache.lucene.store.Directory类的字段:

  • protected boolean isOpen
  • protected LockFactory lockFactory -- 持有LockFactory实例(工具锁定此目录实例)。
类的构造函数
S.N. 构造函数和说明
1 Directory()
类方法
S.N. 方法 描述
1 void clearLock(String name) 尝试清除(强行解锁和删除)指定的锁
2 abstract void close() 关闭存储
3 static void copy(Directory src, Directory dest, boolean closeDirSrc) 不推荐使用。应要求被替换复制(目录,字符串,字符串)为每个需要复制的文件。可以使用下面的代码: IndexFileNameFilter filter = IndexFileNameFilter.getFilter(); for (String file : src.listAll()) { if (filter.accept(null, file)) { src.copy(dest, file, file); } }
4 void copy(Directory to, String src, String dest) 复制文件到目录src下的新文件名dest
5 abstract IndexOutput createOutput(String name) 创建在给定名称的目录中一个新的空文件
6 abstract void deleteFile(String name) 删除目录中的现有文件
7 protected void ensureOpen()
8 abstract boolean fileExists(String name) 当且仅当给定名称的文件存在,则返回true
9 abstract long fileLength(String name) 返回目录中的文件的长度
10 abstract long fileModified(String name) 不推荐使用
11 LockFactory getLockFactory() 获取此目录实例使用其锁定实现LockFactory
12 String getLockID() 返回一个字符串标识符,它唯一来自其他目录情况下,这种区别Directory实例
13 abstract String[] listAll() 返回字符串数组,一个用于在目录中的每个文件
14 Lock makeLock(String name) 构造一个锁
15 abstract IndexInput openInput(String name) 返回流中读取现有的文件
16 IndexInput openInput(String name, int bufferSize) 返回流中读取现有的文件,用指定读缓存的大小
17 void setLockFactory(LockFactory lockFactory) 设置LockFactory这个指南实例应该用于其锁定的实现
18 void sync(Collection names) 确保任何写入这些文件移动到稳定的存储
19 void sync(String name) 不推荐使用。使用同步(集合)来代替。为了便于移植,可以改变代码调用sync(Collections.singleton(name))
20 String toString()
21 abstract void touchFile(String name) 不推荐使用。Lucene从未使用这个API;它将在4被移除。0.
方法继承

这个类从以下类继承的方法:

  • java.lang.Object

Document

文档表示一个虚拟文档与字段,其中字段是可包含在物理文档的内容,它的元数据等的对象。Analyzer只能理解文档。

类声明

以下是 org.apache.lucene.document.Document 类的声明:

public final class Document
   extends Object
      implements Serializable
类构造函数
S.N. 构造函数和说明
1 Document()
类方法
S.N. 方法及说明 描述
1 void clearLock(String name) 尝试清除(强行解锁和删除)指定的锁
2 void add(Fieldable field) 增加一个字段到一个文档。
3 String get(String name) 如果存在这个文件,返回给定名称的字段的字符串值或者null。
4 byte[] getBinaryValue(String name) 返回第一个(或唯一)字段中具有指定为方法参数的名称的字节数组。
5 byte[][] getBinaryValues(String name) 返回字节阵列为具有指定为方法参数的名称的字段的数组。
6 float getBoost() 返回时,在索引时间,增强因子由setBoost(float)设置
7 Field getField(String name) 不推荐使用。使用getFieldable(java.lang.String) ,构造根据数据类型。
8 Fieldable getFieldable(String name) 如果存在这个文件,返回一个字段的名字或者为null
9 Fieldable[] getFieldables(String name) 返回Fieldables给定的名称的数组
10 List getFields() 返回所有文档中的字段列表
11 Field[] getFields(String name) 不推荐使用。使用getFieldable(java.lang.String) ,根据数据类型构造
12 String[] getValues(String name) 返回指定为方法参数字段的值的数组
13 void removeField(String name) 去除字段中文档中指定的名称
14 void removeFields(String name) 从文档删除指定名称的所有字段
15 void setBoost(float boost) 设置这个文件的任何字段命中因素
16 String toString() 打印供消费的文档域
方法继承

这个类从以下类继承的方法:

  • java.lang.Object

Field

字段是最低单元或索引过程的起点。它代表其中一个键被用于识别要被索引的值的键值对关系。用于表示一个文件的内容的字段中将具有键为“内容”和值,可以包含文本或文档的数字内容的部分或全部。

Lucene可以索引仅文本或仅数字内容。此类表示索引的存储位置,并通常是文件的列表。这些文件被称为索引文件。索引文件通常创建一次,然后用于读操作或可以被删除。

类声明

以下是 org.apache.lucene.document.Field 类的声明:

public final class Field
   extends AbstractField 
      implements Fieldable, Serializable
类的构造函数
S.N. 构造函数和说明
1 Field(String name, boolean internName, String value, Field.Store store, Field.Index index, Field.TermVector termVector) 通过指定名称,值将如何被保存在索引中创建一个字段
2 Field(String name, byte[] value) 创建一个二进制值存储字段中
3 Field(String name, byte[] value, Field.Store store) 不推荐使用
4 Field(String name, byte[] value, int offset, int length) 创建一个二进制值存储字段中
5 Field(String name, byte[] value, int offset, int length, Field.Store store) 不推荐使用
6 Field(String name, Reader reader) 创建未存储一个记号化和索引字段
7 Field(String name, Reader reader, Field.TermVector termVector) 创建未存储,任选具有存储术语矢量的标记化和索引字段
8 Field(String name, String value, Field.Store store, Field.Index index) 通过指定名称,值将如何被保存在索引中创建一个字段
9 Field(String name, String value, Field.Store store, Field.Index index, Field.TermVector termVector) 通过指定名称,值将如何被保存在索引中创建一个字段
10 Field(String name, TokenStream tokenStream) 创建未存储标记化和索引字段
11 Field(String name, TokenStream tokenStream, Field.TermVector termVector) 创建未存储,任选具有存储术语向量标记化和索引字段
类方法
S.N. 方法及说明 描述
1 void clearLock(String name) 尝试清除(强行解锁和删除)指定锁
2 Reader readerValue() 字段作为读取器Reader,或null
3 void setTokenStream(TokenStream tokenStream) 设置要用于索引记号流并引起 isIndexed()和 isTokenized()返回 true
4 void setValue(byte[] value) 改变这个字段的值
5 void setValue(byte[] value, int offset, int length) 改变这个字段的值
6 void setValue(Reader value) 改变这个字段的值
7 void setValue(String value) 改变这个字段的值
8 String stringValue() 字段作为一个字符串,或 null
9 TokenStream tokenStreamValue() 要使用TokesStream 字段建立索引,或者为null。
继承的方法

这个类继承了以下类方法:

  • org.apache.lucene.document.AbstractField
  • java.lang.Object
posted @ 2022-01-06 16:41  yigeer1  阅读(80)  评论(0)    收藏  举报