Lucene 排序及多字段查詢

2021-08-22 18:24:05 字數 1136 閱讀 9425

預設情況下,indexsearcher類的search方法返回查詢結果時,是按文件的分值排序的,可以使用過載的search方法對結果排序

indexsearcher.search(query,sort);

new sort() 和 sort.relevance,以及null一樣,採用預設排序,要定義排序字段,方法是將字段傳入sort物件

sort sort = new sort(string field);

也可以對多個字段排序sort sort = new sort(string fields);

例:sort sort = new sort(new sortfield);

hits hits=searcher.search(query,sort);

多欄位查詢multifieldqueryparser

只在某些term中查詢,不關心在哪個字段

query query = new multifieldqueryparser.parse(「word」,new string,analyzer); //在title和content中找word

多字段時預設是or關係,要改變它,使用以下方法:

query query = multifieldqueryparser.parse(「word」,new string,new int,analyzer);

其中:required_field 表示該條件必須有

prohibited_field 表示必須不含

索多個索引檔案multisearcher

1)       建立多個索引:使用不同的索引目錄,例項化不同的indexwriter

2)       建立多索引搜尋器:

searcher searchers = new searcher[2];

searchers[0] = new indexsearcher(dir1); //搜尋索引目錄一

searchers[1]= new indexsearcher(dir2);//搜尋索引目錄二

searcher searcher = new multisearcher(serarchers);

3) 開始查詢:hits hits = searcher.search(query);

Lucene 排序及多字段查詢

預設情況下,indexsearcher類的search方法返回查詢結果時,是按文件的分值排序的,可以使用過載的search方法對結果排序 indexsearcher.search query,sort new sort 和 sort.relevance,以及null一樣,採用預設排序,要定義排序字段...

lucene多欄位查詢

booleanquery typenegativesearch new booleanquery queryparser parser new queryparser contents new analyzer parser.setdefaultoperator queryparser.and op...

lucene多欄位查詢

我的例子就是2.0的,現在給你的是兩個域,你可以用n個域 booleanquery typenegativesearch new booleanquery queryparser parser new queryparser contents new analyzer parser.setdefau...