Lucene 搜尋方法(布林搜尋)

2021-08-31 04:17:59 字數 1985 閱讀 9094

布林搜尋:

布林查詢的物件中,包含乙個子句的集合。各種子句間都是「與」、「或」這樣的布林邏輯。

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 鋼...