最简单的查询方式,之前已经介绍过什么是 Term 了。
Term term = new Term("contents","b");
TermQuery termQuery = new TermQuery(term);
TopDocs topDocs = searcher.search(termQuery, 3);
基本的查询语法
// 基本形式 field:text
// 可以用 AND OR NOT()拼凑出更为复杂的查询
// * 通配符,不可置于首位
String q = "path:\"hello\" AND path:\"test\"";
String q2 = "\"hello\" AND NOT \"test\"";
String q3 = "\"hello\" AND (\"test\" OR \"chinese\")";
Query query = parser.parse(q);
TopDocs topDocs = searcher.search(query, 3);
QueryParser 就是将表达式转化为各种 Query 实例的工具。
Query 类的 toString 被重载为输出查询语句。
Query query = parser.parse("chinese");
System.out.println(query.toString());