一、創建索引 :TDictionaryIndex.java 例子
二、實用Lucene收索
A. 普通查詢
if (pname != null && !("").equals(pname)) {
queryParser = new QueryParser("name", analyzer);
query = queryParser.parse(pname);
booleanQuery.add(query, BooleanClause.Occur.MUST);
}
B. In 范圍查詢
if(datavarsor.trim().equals("30,22,4,14,12,2,7,15,21,1,6,8,5,28")){
datavarsor="30 22 4 14 12 2 7 15 21 1 6 8 5 28";
queryParser = new QueryParser("datavarsort", analyzer);
queryParser.setDefaultOperator(QueryParser.Operator.OR);//
query = queryParser.parse(datavarsor);// 多選擇產品稅號
booleanQuery.add(query, BooleanClause.Occur.MUST);
}
C. 選擇查詢 關鍵字
if (wd != null && !wd.equals("")) {
queryParser = new MultiFieldQueryParser(new String[] {// 查詢條件是或的關系。。。
"department", "isorno", "filename" }, analyzer);
query = queryParser.parse(wd);
booleanQuery.add(query, BooleanClause.Occur.MUST);
HeighlighterQuery = query;
D.準確查詢
注意創建索引的時候:
if (typename != null && !typename.equals(""))
document.add(new Field("typename", typename, Field.Store.YES,
Field.Index.UN_TOKENIZED));
查詢的時候:
query = new TermQuery(new Term("typename", typename));
booleanQuery.add(query, BooleanClause.Occur.MUST);
E.時間排序
org.apache.lucene.search.Sort sort2 = new org.apache.lucene.search.Sort(new SortField("endtime", SortField.STRING,
true));// 完成按照時間來排序
hits = search.search(booleanQuery, null, toIndex,sort2).scoreDocs;
}