刚刚在学习创建搜索的时候写到了
//建立搜索单元, SearchType代表要搜索的Filed, searchKey代表关键字
Term t = new Term(searchType, searchKey);
//由Term生成一个Query
Query q = new TermQuery(t);
突然对于这个Term 和 Term 产生了兴趣。
并且自己并不知道他是什么类。
在网上查了一下,自己总结如下:
Term在英文中是项的意思
TermQuery 是 lucene查询中最基本的一种原子查询,从它的名字Term我们可以看出,它只能针对一个字段进行查询。
下面是我测试的一个代码样例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
@Test
public void testGovenQuery(){
try {
String keyword= "杭州" ;
Directory dic= new SimpleFSDirectory( new File(ILuceneManager.DEFAULT_REGION_LUCENE_INDEX_PATH));
IndexSearcher searcher= new IndexSearcher(dic);
//------------TermQuery 单个关键字查询
Query query= new TermQuery( new Term( "NAME" ,keyword));
TopDocs tops=searcher.search(query, LuceneManagerImpl.DEFAULT_QUERY_NUM);
System.out.println(tops.totalHits);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
|
其中ILuceneManager.DEFAULT_REGION_LUCENE_INDEX_PATH是我预先生成好的行政区划数据表的lucene索引路径。