把lucene的查詢當成sql的查詢,也許會籠統的明白些query的真相了。
查詢分為大致兩類,1:精準查詢。2,模糊查詢。
建立測試資料。
private先建立索引。directory directory;
private
indexreader reader;
private string ids = ;
private string emails = ;
private string contents =;
private
int attachs = ;
private string names = ;
1索引建立完畢。private mapscores = new hashmap();23
public
searchutil() catch
(ioexception e) 12}
13/**
14* 建立索引
15*/
16 @suppresswarnings("deprecation")
17public
void
index()
37doc.add(field);
38//
新增文件
39writer.adddocument(doc);40}
41 } catch
(exception e) finally
catch
(ioexception e) 51}
52 }
構造方法。
/**一、精準匹配。1,精準查詢就是查什麼給什麼。* getsearcher
* @return
*/public
indexsearcher getsearcher()
else
return
newindexsearcher(reader);
} catch
(ioexception e)
return
null
; }
1/**2
* 精準匹配3*/
2,區間查詢。
3、匹配其索引開始以指定的字串的文件
1/**2
* 匹配其索引開始以指定的字串的文件3*
4、數字搜尋
/**二、模糊匹配* 數字搜尋
* @param
field
* @param
start
* @param
end *
@param
num
*/public
void searchbynums(string field,int start,int end,int
num)
} catch
(exception e)
}
/*** 萬用字元
* @param
field
* @param
value
* @param
num
*/public
void searchbywildcard(string field,string value,int
num)
} catch
(exception e)
}/*** booleanquery可以連線多個子查詢
* occur.must表示必須出現
* occur.should表示可以出現
* occur.muse_not表示不能出現
* @param
field
* @param
value
* @param
num
*/@suppresswarnings("deprecation")
public
void searchbyboolean(string field,string value,int
num)
indexsearcher searcher =getsearcher();
booleanquery query = null
; topdocs tds = null
;
for(int i = 0;i)
system.out.println("一共查詢:"+tds.totalhits);
for(scoredoc doc:tds.scoredocs)
} catch
(exception e)
}public
void searchbyphrase(int
num)
} catch
(exception e)
}/*** 相似度匹配查詢
* @param
num
*/public
void searchbyfuzzy(int
num)
} catch
(corruptindexexception e)
catch
(ioexception e)
}public
void searchbyqueryparse(query query,int
num)
} catch
(corruptindexexception e)
catch
(ioexception e)
}
理解Lucene中的Query
query是乙個介面,它有很多實現類。queryparser是query解析器,用於將乙個字串解析為乙個query物件,這個query物件可能屬於termquery,也可能屬於phrasequery termquery booleanquery等。可以通過query物件的getclass 方法來檢視...
lucene當中的各種query(二)
multiphrasequery 實現以下功能 字首搜尋 indexsearcher searcher new indexsearcher index store path multiphrasequery query new multiphrasequery query.add new term ...
lucene搜尋方式(query型別)
出處 感謝作者 lucene有多種搜尋方式,可以根據需要選擇不同的方式。1 詞條搜尋 單個關鍵字查詢 主要物件是termquery 呼叫方式如下 term term new term 欄位名,搜尋關鍵字 query query new termquery term hits hits searche...