2011-10-24 128 views
0

不知道這個標題是否正確,但我想要的是隻能從lucene索引中搜索幾個文檔(而不是全部)。如何部分搜索lucene索引? (搜索一些文件,不是全部)

想想爲以下方面:

用戶想要一本書,這是由章Lucene的,章索引(每章對應一個文件)內進行搜索。用戶需要能夠選擇他想要搜索的章節,以避免他的研究不相關的發生。

是否有可能將搜索限制爲僅某些文檔?或者我必須搜索所有索引,然後過濾結果?

謝謝!

回答

1

Lucene允許您應用查詢過濾器,以便您可以僅限於那些符合過濾條件的結果。
所以基本上你可以搜索chapter:chapter1,搜索將僅限於第一章文檔

+0

感謝您的支持! 這是有道理的,我沒有想到,沒有必要的字段/字段的文件被忽略(不搜索,沒有性能衰減)。 – Fabio

1

看看QueryWrapperFilter。它會讓你輕鬆做到這樣的事情。

但請注意,這更易於編碼。這不會有助於提高性能,因爲在後臺,它可以有效地搜索整個索引,但它更易於編碼「在搜索範圍內進行搜索」。搜索整個索引不是問題,因爲這是索引的全部目的 - 使索引搜索非常快。這是假定您有一本附帶索引的書籍ID。如果是這種情況,那麼在搜索中包括書籍ID就可以對該書的整個索引進行非常快速的搜索。

+0

謝謝你的回答! 我的關注是真的關於性能,我認爲搜索所有索引可能會使性能變得更糟,但也許我不會有這樣的問題(索引不超過1000個文檔)。 – Fabio

+0

如果您的文檔少於1000個,那麼您的搜索時間應該在1毫秒左右 - 性能不會成爲問題! – dnuttle