2011-05-04 103 views
0

我正在使用Lucene和java來索引一些文本文檔。現在,在我爲關鍵字搜索獲得一些頂級文檔之後,我想進一步優化我的搜索並僅搜索那些帶有一些額外關鍵字的頂級文檔,因此每個文檔只有一次。有人可以告訴我如何使用特定的關鍵字來搜索特定的文檔,而不是整個索引,但是可以用關鍵字「bla blah」來說明123.xml。在特定文檔上搜索lucene

thanx提前

回答

0

如果要細化搜索,你應該使用過濾器(看IndexSearcher的

search(Query query, 
    Filter filter, 
    int n, 
    Sort sort) 

)!過濾器將在結果集上執行,並且是實現精確搜索的正確方法。

看一看這個頁面,瞭解如何使用過濾器:如果你只想要一個文檔中進行搜索,你可以把一個文件

,將其存儲在:http://www.javaranch.com/journal/2009/02/filtering-a-lucene-search.html

不管怎麼說RAMDirectory並在RAMDirectory中搜索,就像在普通索引中一樣。或者您可以爲每個文檔設置一個字段包含唯一標識符,並將其添加到您的查詢中,例如「內容:(bla blah)和uniqe_doc_id:(doc1)」

+0

我不是很熟悉lucene,你能舉一個我如何使用過濾器的例子嗎? – Fuega 2011-05-04 13:25:20

+0

@Fuega:我編輯了答案;) – csupnig 2011-05-04 13:33:59