布林搜尋:
布林查詢的物件中,包含乙個子句的集合。各種子句間都是「與」、「或」這樣的布林邏輯。
package com.querytype;
import org.apache.lucene.index.term;
import org.apache.lucene.search.booleanclause;
import org.apache.lucene.search.booleanquery;
import org.apache.lucene.search.hits;
import org.apache.lucene.search.indexsearcher;
import org.apache.lucene.search.termquery;
public class booleanquerydemo {
/**
* @param args
*/ public static void main(string args) {
try {
indexsearcher search = new indexsearcher("d://demo");
term t1 = new term("bookname","女");
term t2 = new term("bookname","狗");
termquery q1 = new termquery(t1);
termquery q2 = new termquery(t2);
booleanquery query = new booleanquery();
query.add(q1,booleanclause.occur.must);
query.add(q2,booleanclause.occur.must);
hits hits = search.search(query);
for(int i=0;i>
2.must.must_not
must和must_not的組合表示查詢的結果中不能包含must_not所對應的查詢子句的檢索結果。
程式:
term t1 = new term("bookname","女");
term t2 = new term("bookname","狗");
termquery q1 = new termquery(t1);
termquery q2 = new termquery(t2);
booleanquery query = new booleanquery();
query.add(q1,booleanclause.occur.must);
query.add(q2,booleanclause.occur.must_not);
列印:
document3.must_not與must_not沒有含義
4.should與must和should與must_not
他和must聯用,失去意義,檢索結果為must的結果集,和must_not聯用時候,should的功能和must功能一樣。
5.should與should
表示一種或的關係。檢索結果為兩者的並集。
程式:query.add(q1,booleanclause.occur.should);
query.add(q2,booleanclause.occur.should);
列印:
document布林查詢對其子句的數量是有限制的預設限制為1024條子查詢,如果查過了,會丟擲toomanyclauses異常,當然使用者也可以通過booleanquery的方法setmaxclausecount(int maxclausecount).
布林查詢的子句並非只能對termquery的原子查詢,也可以進行booleanquery的符合查詢。
Lucene 搜尋方法(範圍搜尋)
在某些情況下,使用者需要查詢一定範圍內的文件,比如時間,id等。package com.querytype import org.apache.lucene.index.term import org.apache.lucene.search.booleanclause import org.apa...
Lucene 搜尋方法(字首搜尋)
prefixquery是一種字首搜尋,在檢索的時候,常常需要進行某種字首查詢,例如到圖書館查詢一本書,可能只能記得書名的前面幾個字,這種情況就可以用該種搜尋模式。public static void main string args try indexsearcher search new inde...
Lucene 搜尋方法(短語搜尋)
public static void main string args try indexsearcher search new indexsearcher d demo phrasequery query new phrasequery term term1 new term bookname 鋼...