记:Lucene词项搜索

编程

TermQuery词项搜索最简单的搜索,不用查询分词器进行语句分词分析,在Lucene中词项是最基本的搜索单位,从本质上来说,一个词项其实就是一个key/value键值对。只不过key是lucene文档结构的域,而value则是字段所包含的某个关键字。所以不用索引分析器,直接词项命中索引即可。

 public static void main(String[] args) throws IOException {

//索引目录路径

Directory dir = FSDirectory.open(Paths.get("indexdir"));

//读取索引

IndexReader reader = DirectoryReader.open(dir);

//索引搜索

IndexSearcher searcher = new IndexSearcher(reader);

//索引分析器

// Analyzer analyzer = new IKAnalyzer6x(true);

//建立词项查询条件

Term queryTerm = new Term("title", "北大");

Query query = new TermQuery(queryTerm);

//执行搜索前十条

TopDocs docs = searcher.search(query, 10);

for (ScoreDoc sd :

docs.scoreDocs) {

Document doc = searcher.doc(sd.doc);

System.out.println("DocID:" + sd.doc);

System.out.println("id:" + doc.get("id"));

System.out.println("title:" + doc.get("title"));

System.out.println("文档评分:" + sd.score);

}

}

 

以上是 记:Lucene词项搜索 的全部内容, 来源链接: utcz.com/z/515515.html

回到顶部