摘要: 在lucene3.0中,范围查询也有很大的变化,RangeQuery已经不推荐使用,使用TermRangeQuery和NumericRangeQuery两个替代。TermRangeQuery:主要用于文本范围查找;IndexReader reader = IndexReader .open(FSDirectory.open(INDEX_DIR), true); // only searching,Searcher searcher = new IndexSearcher(reader);String field = "starttime";TermRangeQuery qu 阅读全文
posted @ 2011-04-01 12:59 李克华 阅读(2674) 评论(0) 推荐(0)
摘要: 使用Lucene做全文检索,一般我们经常会在多个字段(域)中查找,而不一定关心在那个字段中包含需要查找的值.比如在搜索框中输入:亲亲宝宝 软件开发,只要标题、内容、作者等包含“亲亲宝宝 软件开发”都是我们要查找的结果。Lucene中MultiFieldQueryParser正好给我们提供多字段查找带来方便.MultiFieldQueryParser multiParser= new MultiFieldQueryParser(Version.LUCENE_CURRENT,new String[]{"title","content","autho 阅读全文
posted @ 2011-04-01 12:57 李克华 阅读(2291) 评论(1) 推荐(0)
摘要: 由于lucene生成索引文件比较耗时,索引我们可以把经常变动的和不变化的防到两个索引文件中,查询时使用联合查询,可以在两个索引中同时查找.IndexSearcher[] searchers = new IndexSearcher[2];searchers[0] = new IndexSearcher(m_indexpath); searchers[1] = new IndexSearcher(m_outindexpath); MultiSearcher multiSearcher = new MultiSearcher(searchers);TopScoreDocCollector colle 阅读全文
posted @ 2011-04-01 12:54 李克华 阅读(761) 评论(0) 推荐(0)
摘要: Lucene 查询的保留字有:+ – &| ! ( ) { } [ ] ^ ~ * ? : \ 还有 AND OR NOT这些关键字,在查询之前要进行替换或过滤可以这样去掉:String str=www.wenhq.com \[luncene关键字]+ – &| ! ( ) { } [ ] ^ ~ * ? :\\";str =str.replaceAll("\"|\\+|\\-|\\&|\\||\\!|\\(|\\)|\\{|\\}|\\[|\\]|\\^|\\~|\\*|\\?|\\:|\\\\", " ") 阅读全文
posted @ 2011-04-01 12:42 李克华 阅读(691) 评论(0) 推荐(0)