摘要: 这 部分内容将介绍三个紧密联系的主题:索引文件的并发访问、IndexReader和IndexWriter的线程安全性,以及Lucene用于避免索引被 破坏而使用的锁机制。通常,Lucene的初学者们对这几个主题都存在一定的误解。而准确地理解这些内容是十分重要的,因为,当索引应用程序同时服务于大 量不同的用户时,或为了满足一些突发性的请求、而需要通过对某些操作进行并行处理时,这些内容会帮助你消除在构建应用程序过程中所遇到的疑问。2.9.1 并发访问的规则Lucene 提供了一些修改索引的方法,例如索引新文档、更新文档和删除文档;在执行这些操作时,为了避免对索引文件造成损坏,需要遵循一些特定的规则 阅读全文
posted @ 2012-02-16 16:41 李克华 阅读(6481) 评论(0) 推荐(2)
摘要: 在删除某个索引的时候,会在索引文件所在的目录下生成一个xx.lock文件,这个文件的生成是在deleteDocuments方法执行时,如果删除完毕不关闭的情况下如下: IndexWriter writer=new IndexWriter(FSDirectory.open(new File(config.getIndexFilePath())),new StandardAnalyzer(Version.LUCENE_CURRENT),MaxFieldLength.UNLIMITED); //writer.deleteAll(); Term term=new Term("NAME&quo 阅读全文
posted @ 2012-02-16 16:27 李克华 阅读(1461) 评论(0) 推荐(0)
摘要: 如果想删除Lucene索引,常常采用的类是IndexWriter,下图描述IndexWriter类删除索引的方法: ok,我来测试这个deleteAll方法是什么效果。首先创建一些索引文件(具体的方法和代码我就此省略),索引文件可以组织结构图如下: 接下来,我们来将索引删除,以前删除索引我都是手动删除,汗~~~~,因为那些索引创建了以后几乎都不改变,因为那些数据都是不动的兴趣点数据。所以我当时也没有写删除索引的方法。下面是我测试删除索引的方法:View Code 1 public void testDeleteIndex(){ 2 POIConfig config=POI... 阅读全文
posted @ 2012-02-16 15:21 李克华 阅读(1048) 评论(1) 推荐(0)
摘要: Java 6 JVM 参数选项大全(中文版)作者: Ken Wu Email: ken.wug@gmail.com转载本文档请注明来自 Ken Wu`s Blog !本文 是基于最新的 SUN官方 文档 Java SE 6 Hotspot VM Options 编写的译文。主要介绍JVM 中的非稳态选项及其使用说明。为了让读者明白每个选项的含义,作者在原文基础上补充了大量的资料 。因为是初稿,如有描述错误,敬请指正。非稳态 选项使用说明 -XX:+<option> 启用option-XX:-<option> 不启用option-XX:<option>=< 阅读全文
posted @ 2012-02-16 13:44 李克华 阅读(471) 评论(0) 推荐(0)
摘要: 一、相关概念 基本回收算法 引用计数( Reference Counting ) 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为 0 的对象。此算法最致命的是无法处理循环引用的问题。 标记 - 清除( Mark-Sweep ) 此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标记的对象清除。此算法需要暂停整个应用,同时,会产生内存碎片。 复制( Copying ) 此算法把内存空间划为两个相等的区域,每次只使用其中一个区域。垃圾回收时,遍历当前使用区域,把正在使用中的对象复制到另外一个 阅读全文
posted @ 2012-02-16 13:40 李克华 阅读(683) 评论(0) 推荐(0)
摘要: 在Java 5.0之前启动一个任务是通过调用Thread类的start()方法来实现的,任务的提于交和执行是同时进行的,如果你想对任务的执行进行调度或是控制 同时执行的线程数量就需要额外编写代码来完成。5.0里提供了一个新的任务执行架构使你可以轻松地调度和控制任务的执行,并且可以建立一个类似数据库连接 池的线程池来执行任务。这个架构主要有三个接口和其相应的具体类组成。这三个接口是Executor, ExecutorService、ScheduledExecutorService,让我们先用一个图来显示它们的关系:图的左侧是接口,图的右侧是这些接口的具体类。注意Executor是没有直接具体实. 阅读全文
posted @ 2012-02-16 12:20 李克华 阅读(911) 评论(1) 推荐(0)
摘要: 我测试了一下多字段构造查询,代码如下:try { long start=System.currentTimeMillis(); Directory dic = new SimpleFSDirectory(new File(ILuceneManager.DEFAULT_REGION_LUCENE_INDEX_PATH)); IndexSearcher searcher=new IndexSearcher(dic); //----------设置相似度 //searcher.setSimilarity(new IKSimilarity()); //---------... 阅读全文
posted @ 2012-02-16 10:48 李克华 阅读(3542) 评论(1) 推荐(0)