1、多个只读操作都可以并发,可以是多线程的或者是平行的搜索同一个索引。
2、当索引文件被改变的时候,只读操作同样支持并发。也就是说当你优化索引或者是往索引中添加或者是更新删除索引中的documents,只读操作仍然是允许的(可以继续search)。
3、同一时间只允许一个读写操作。索引在同一时间只能被一个IndexWriter或者IndexReader所打开。
下图是可以当有IndexWriter或者IndexReader在使用的时候可以执行的操作的表格,X号的表示不能执行
从上面的表格可以看出对索引进行操作是不会终止查询和读取索引的,但在实际使用中会影响到查询的效率。如何有线程在不段的做增量索引的话可以将IndexWriter的mergeFactor和maxBufferedDocs的值设置的大些,这样会降低io操作并且不会频繁的merge,另外可以自定义optimize的时间,保证search的效率。
指定lock文件存放位置
lucene中lock files的默认是由java.io.tempdir的系统属性来制定的。通常linux下是在/tem/,window下是在C:\Documents and Settings\\Local Settings\Temp下。
我们可以通过java -Dorg.apache.lucene.lockDir=<% path %> 来制定lock files的存放位置。
lucene目前有write.lock和commit.lock两种。
write.lock是在对索引文件进行修改的时候生成的,这个时候IndexWriter的操作或者IndexReader 删除Documents, 取消删除都会抛出异常。
commit.lock是在segments文件被读取或者合并的时候生成的。当IndexReader 读取索引文件之前会获得commit.lock,当segments被读取完毕的时候会释放。IndexWriter在添加文档或者合并索引的时候同样会获得commit.lock
可以用IndexReader的 isLocked来判读索引文件是否被锁,或者unlock方法来解锁
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bossy0709/archive/2007/04/12/1562501.aspx
分享到:
相关推荐
在信息检索和存储系统中,Lucene是一个开源的全文搜索引擎库,广泛应用于各种需要全文搜索功能的软件项目中。为了高效地处理和检索存储的词项(term),Lucene使用了FST(有限状态转换器,Finite State Transducer)...
- **缓存策略**:合理使用Lucene.NET的缓存机制,如TermVector缓存,可以提升查询性能。 总的来说,Lucene.NET在中文分词和高亮显示方面的应用需要结合合适的分词器,并进行适当的配置和优化。开发者可以根据实际...
本文将深入探讨Lucene的索引机制,帮助读者理解其工作原理和使用方法。 1. Lucene 简介 Lucene最初由Doug Cutting创建,他是一个在全文检索领域的专家。自2001年加入Apache基金会以来,它成为了Jakarta项目的子项目...
来自“猎图网 www.richmap.cn”基于IKAnalyzer分词算法的准商业化Lucene中文分词器。 1. 正向全切分算法,42万汉字字符/每秒的处理能力(IBM ThinkPad 酷睿I 1.6G 1G内存 WinXP) 2. 对数量词、地名、路名的...
赠送jar包:lucene-core-7.2.1.jar; 赠送原API文档:lucene-core-7.2.1-javadoc.jar; 赠送源代码:lucene-core-7.2.1-sources.jar; 赠送Maven依赖信息文件:lucene-core-7.2.1.pom; 包含翻译后的API文档:lucene...
Lucene是一个强大的全文检索库,广泛应用于搜索引擎开发和其他信息检索系统中。它提供了高效、可扩展的文本搜索功能,但是默认情况下并不支持中文处理。为了在Lucene中处理中文文本,我们需要引入专门的中文分词器...
### Lucene与中文分词技术的研究及应用 #### Lucene简介与原理 Lucene是一款高性能、全功能的文本搜索引擎库,由Java语言编写而成。它为开发者提供了构建全文搜索引擎的能力,而无需关注底层搜索机制的具体实现...
在Lucene中,评分机制(Scoring Mechanism)就是用于决定文档与查询匹配程度的关键部分,它决定了哪些文档应该排在搜索结果的前面。 Lucene 的核心是倒排索引,这种数据结构使得能够快速定位到包含特定词项的文档。...
lucene 3.0 API中文帮助,学习的人懂得的
本文将详细介绍“lucene所有的jar包”,特别是其中的“my的jar”和“ik的jar包”,以及它们在Lucene 4.9.0版本中的作用和使用方法。 一、Lucene简介 Lucene是Apache软件基金会的一个开放源代码项目,它提供了一个...
赠送jar包:lucene-core-7.7.0.jar; 赠送原API文档:lucene-core-7.7.0-javadoc.jar; 赠送源代码:lucene-core-7.7.0-sources.jar; 赠送Maven依赖信息文件:lucene-core-7.7.0.pom; 包含翻译后的API文档:lucene...
其中,Apache Lucene作为一个开源的全文检索库,被广泛应用于各种项目中,尤其对于处理中文文本,分词是其关键的一环。本文将深入探讨如何在Lucene中高效地进行中文分词,借助“庖丁解牛”的概念,以求在理解与应用...
2. **分词器(Tokenizer)与过滤器(Filter)**:Lucene支持自定义的分词规则,如`StandardTokenizer`和`LowerCaseFilter`。这些在`analysis`包下的源码中可以找到,它们负责将原始文本转换为可搜索的术语。 3. **...
Lucene是一个强大的全文检索库,它被广泛应用于各种信息检索和搜索引擎系统中。这个“完整版”可能指的是提供了一个完整的项目,包含了源代码,使得用户可以直接运行并理解其工作原理。 描述中的“又完整工程,源...
lucene,lucene教程,lucene讲解。 为了对文档进行索引,Lucene 提供了五个基础的类 public class IndexWriter org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store....
总的来说,支持Lucene的词典机械中文分词方法结合了反向分词策略和特定的数字、英文处理机制,能够有效地处理中文文本,特别是对中英文数字混合词的识别。通过对分词算法的优化,实现了快速而准确的分词效果,为中文...
**Lucene 3.0 API 中文帮助文档详解** Lucene 是一个开源的全文检索库,由Apache软件...尽管现在已经有了更新的版本,但3.0版本的API仍然具有重要的学习价值,因为许多核心概念和机制在后续版本中得到了保留和发展。
Lucene中的SpanQuery和PhraseQuery详解 Lucene是一个功能强大的搜索引擎库,提供了多种查询方式,其中SpanQuery和PhraseQuery是两个重要的查询类型。本文将详细介绍SpanQuery和PhraseQuery的使用和区别。 一、...
2. **正则表达式(regex)在Lucene中的应用** 3. **regexQuery详解** 4. **示例代码解析** 5. **索引创建与查询流程** 6. **正则表达式的语法** #### Lucene简介 Lucene是一个高性能、全功能的全文搜索引擎库。它为...