Matrix - 与 Java 共舞 - lucene之索引

来源:百度文库 编辑:神马文学网 时间:2024/04/30 02:43:32
本文来自:http://www.matrix.org.cn/blog/yikid/
1.索引内容结构:Document,以及包含于Document的多个Field,
Field的控制参数包括isStored,isIndexed,isTokenized(如方法keyword该参数为false)。
对数字的索引假如需要对该数字进行有范围的搜索,必须将数字进行格式化为等长,以相同字符补齐高位的字符串。
2.索引内容优先性调整因子,boost(可对整个Document或Field指定).
3.索引的写入IndexWriter,索引的写入目标Directory,实现包括FsDirectory跟RamDirectory等索引内容的修改必须通过Document的删除,再增加实现,通过document.removeField删除字段,不影响索引。
4.索引创建速度的调整
IndexWriter的调整因子,mergeFactor(同一时间内索引段文件的最大数目),
maxMergeDocs(一个索引段文件允许包含的最大doc数目),
minMergeDocs(一个索引段文件允许的最小文件数目)。
在内存足够大的情况下,可以增加1,3数量,以提高速度,但同时也要注意gc对速度的影响。
总之,目的就是未了减少disk 的io访问.
方法二,先把索引写入RamDirectory,达到一定的数量后,将RamDirectory写入到FsDirectory.
other:并行线程创建索引,多disk等等。。。
5.在unix下,用户进程允许打开文件数目可能影响对索引文件的读取或写入,可调整相应的系统参数.
6.IndexWriter的优化方法optimize(),将多个段文件合并为一个,有利于提高查询速度,但不影响索引速度。
7.IndexWriter的参数maxFieldLength对Field的索引影响,该值指定对Field索引处理的Term的最大数量,默认为10000。
8.并发,线程安全,锁
导致坏索引的两种并发操作的情况:
1.当一个IndexWriter操作正在修改索引时,执行IndexReader的修改索引操作
2.当一个IndexReader操作正在修改索引时,执行IndexWriter的修改索引操作
除此之外,其它任何并发操作都是安全的。
lucene默认情况下提供了两个文件琐write.lock和commit.lock,进行控制
在违背上面两种情况下,将抛出IO异常。
Matrix - 与 Java 共舞 - lucene之索引 Matrix - 与 Java 共舞 - 利用Lucene搜索Java源代码 Matrix - 与 Java 共舞 - JVM之class文件结构 Matrix - 与 Java 共舞 - Ant实践 Acegi简介 - [Matrix - 与 Java 共舞] Matrix - 与 Java 共舞 - 使用Java Swing创建一个XML编辑器之二 Matrix - 与 Java 共舞 - 使用Java Swing创建一个XML编辑器之三 Java IDE之争 谁是下一个霸主 - [Matrix - 与 Java 共舞] Java相关术语大全 - [Matrix - 与 Java 共舞] 实时JAVA简介 - [Matrix - 与 Java 共舞] Matrix - 与 Java 共舞 - Top 15 Ant Best Practices Matrix - 与 Java 共舞 - AJAX:开发者新的一天 Matrix - 与 Java 共舞 - JMeter技巧集锦 二十分钟Ruby入门 - [Matrix - 与 Java 共舞] J2ME平台体系结构 (J2ME) - [Matrix - 与 Java 共舞] matrix - 与 java 共舞 - java混淆编译器(转)(java初学者园地) Matrix - 与 Java 共舞 - [公告]Matrix发布UML for Java Programmers中文共享版 (UML与设计模式) Matrix - 与 Java 共舞 - 使用JSF(Java Server Faces)开发(二) Matrix - 与 Java 共舞 - 有可能挑战Java开发优势的四种技术 Matrix - 与 Java 共舞 - [算法]Java中的位运算优化:位域、位图棋盘.. Matrix - 与 Java 共舞 - [公告]Matrix发布 Pragmatic Version Control 中文共享版 (Ant/Maven/CVS/SVN) matrix - 与 java 共舞 - sqlserver 2000h 和 jdbc 的融合问题 Matrix - 与 Java 共舞 - 教程-在Eclipse中使用Hibernate Matrix - 与 Java 共舞 - 使用工作流引擎wfmopen中的陷井