lucene 多索引目錄搜尋實現方法

2021-09-06 19:25:06 字數 1224 閱讀 3700

多索引目錄就是要在多個索引目錄的中進行比較搜尋,類似概念在sql中就是select * from tablea union select * from tableb。

indexsearcher searchers = new indexsearcher[2];

searchers[0] = new indexsearcher(indexpath0);

searchers[1] = new indexsearcher(indexpath1);

方法a

multisearcher multisearcher = new multisearcher(searchers);

topdocs multitopdocs = multisearcher.search(query, null, 1000);

這個搜尋的結果可能有相同的資訊,比如你有一條相同的資訊在多個目錄中索引,搜尋的結果就會出現多次相同的資訊。

方法b

還有一種搜尋方式是用到parallelmultisearcher這個物件,它是從mulitsearcher繼承而來。

parallelmultisearcher parallelmultisearcher = new parallelmultisearcher(searchers);

topdocs paralleltopdocs = parallelmultisearcher.search(query, null, 1000);

這個搜尋是對搜尋後的結果進行合併,剔除重複的資訊。

方法c

初始化多個indexrader,乙個目錄就是乙個indexreader,最後整合成乙個indexreader陣列,例項化indexsearcher時傳入他

listallindexreaderlist = new arraylist();

for (string filepath : indexfilepathlist)

}indexreader fileindexreaderarr = allindexreaderlist.toarray(new indexreader[0]);

multireader multireader = new multireader(fileindexreaderarr, true);

indexsearcher indexsearcher = new indexsearcher(multireader);

lucene 多索引目錄搜尋實現方法

多索引目錄就是要在多個索引目錄的中進行比較搜尋,類似概念在sql中就是select from tablea union select from tableb。indexsearcher searchers new indexsearcher 2 searchers 0 new indexsearch...

Lucene多索引目錄檢索

我們可以使用multireader 或multisearcher 搜尋多個索引庫。multireader reader new multireader new indexreader indexsearcher searcher new indexsearcher reader hits hits ...

Lucene3 0 建立索引及多目錄搜尋

public void index throws corruptindexexception,lockobtainfailedexception,ioexception optimize 方法是對索引進行優化 indexwriter.optimize indexwriter.close 若需要從索引...