lucene當中的各種query(二)

2021-08-30 16:39:32 字數 1513 閱讀 9252

multiphrasequery

實現以下功能:

字首搜尋:

indexsearcher searcher=new indexsearcher(index_store_path);

multiphrasequery query=new multiphrasequery();

query.add(new term("bookname","鋼"));

term t1=new term("bookname","鐵");

term t2=new term("bookname","和");

term t3=new term("bookname","要");

query.add(new term);

hits hits=searcher.search(query);

for(int i=0;i字尾搜尋:

indexsearcher searcher=new indexsearcher(index_store_path);

multiphrasequery query=new multiphrasequery();

term t1=new term("bookname","鋼");

term t2=new term("bookname","和");

query.add(new term);

query.add(new term("bookname","鐵"));

hits hits=searcher.search(query);

for(int i=0;i

混合搜尋:

indexsearcher searcher=new indexsearcher(index_store_path);

multiphrasequery query=new multiphrasequery();

term t1=new term("bookname","鋼");

term t2=new term("bookname","和");

query.add(new term);

query.add(new term("bookname","鐵"));

term t3=new term("bookname","是");

term t4=new term("bookname","戰");

query.add(new term);

hits hits=searcher.search(query);

for(int i=0;i

本來,要實現 "a (b|c|d) e" 這樣乙個語意的query ,我猜測需要用 "a b e", "a c e" ,"a d e"三個phrasequery

來實現, 現在multiphrasequery實現了這樣乙個方法 

public void add(term terms, int position)

也就是說,可以在原來的phrasequery中的任意位置新增更多的term

於是也就可以方便的實現"a (b|c|d) e"這樣的查詢語意了。

make 當中各種賦值說明 ?

makefile當中有各種不同的賦值符號,是最基本的賦值 是覆蓋之前的值 是如果沒有被賦值過就賦予等號後面的值 是新增等號後面的值 其中 和 都是給變數賦值,他們之間的區別是什麼呢?在make的時候,是將整個makefile展開之後再去決定變數的值,因此獲取的變數的值會是它最終的賦值。但是使 用 符...

lucene學習筆記三 各種query

1,有時對於乙個document來說,有一些field會被頻繁地操作,而另一些field則不會。這時可以將頻繁操作的field和其他field分開存放,而在搜尋時同時檢索這兩部分field而提取出乙個完整的document。這要求兩個索引包含的document的數量必須相同。在建立索引的時候,可以同...

Java當中的陣列

1.陣列的型別 class test 注意 arr的中括號可以寫在後面,也可以寫在前面 arr 3 10 for int i 0 i 5 i 這樣比較麻煩,如果長度變了,for迴圈中的數字還要改變,可以變一種寫法 class test 注意 arr的中括號可以寫在後面,也可以寫在前面 system....