lucene3短语查找PhraseQuery
用户在搜索引擎中进行搜索时,常常查找的并非是一个简单的单词,很有可能是几个不同的关键字。这些关键字之间要么是紧密相联,成为一个精确的短语,要么是可能在这几个关键字之间还插有其他无关的关键字。此时,用户希望将它们找出来。不过很显然,从评分的角度看,这些关键字之间拥有与查找内容无关短语所在的文档的分值...阅读全文
用户在搜索引擎中进行搜索时,常常查找的并非是一个简单的单词,很有可能是几个不同的关键字。这些关键字之间要么是紧密相联,成为一个精确的短语,要么是可能在这几个关键字之间还插有其他无关的关键字。此时,用户希望将它们找出来。不过很显然,从评分的角度看,这些关键字之间拥有与查找内容无关短语所在的文档的分值...阅读全文
在lucene3.0中,范围查询也有很大的变化,RangeQuery已经不推荐使用,使用TermRangeQuery和NumericRangeQuery两个替代。 TermRangeQuery:主要用于文本范围查找; IndexReader reader = IndexReader .open(FSDirectory.open(INDEX_DIR), true); // only searching, Searcher search...阅读全文
由于lucene生成索引文件比较耗时,索引我们可以把经常变动的和不变化的防到两个索引文件中,查询时使用联合查询,可以在两个索引中同时查找. IndexSearcher[] searchers = new IndexSearcher[2]; searchers[0] = new IndexSearcher(m_indexpath); searchers[1] = new IndexSearcher(m_outindexpath); MultiSearcher...阅读全文
Lucene本身并不支持更新, 所以只能选择先删除再新增记录。 lucene本身支持两种删除模式 1,DeleteDocument(int docNum) //指定文档标号自动删除 2,DeleteDocuments(Term term) //删除所有出现该term的文档 前者是根据文档的编号来删除该文档,docNum是该文档进入索引时Lucene的编号,是按照顺序编的;后者是删除满足某一个...阅读全文
lucene3.0中BooleanQuery 实现与或的复合搜索 . BooleanClause用于表示布尔查询子句关系的类,包括:BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT,BooleanClause.Occur.SHOULD。必须包含,不能包含,可以包含三种.有以下6种组合: 1.MUST和MUST:取得连个查询子句的交集。 2.MUST和MUST...阅读全文
lucene3.0升级后,以前的显示分词结果的语句完全不能用了,我们选择分词器又是必须的,到底我们的关键词分词后是怎么显示的呢,具体代码如下: public class AnalyzerTest { public static void main(String[] args)&...阅读全文
QueryParser是一个非常通用的帮助类,他的作用是把用户输入的文本转换为内置的Query对象(大多数web搜索引擎都提供一个查询输入框来让用户输入查询条件)。QueryParser内置提供了很多语法使可以使用输入的各种高级条件的 Query。为了保证查询的正确性,最好用创建索引文件时同样的分析器。QueryParser解析字符串时...阅读全文