我需要返回只是用戶有從Lucene搜索訪問文件。我可以從構成「允許」子集的數據庫中獲取ID列表。我如何將這些傳遞給Lucene?我在網上找到的文章表明我需要使用BitSet和FieldCache(對嗎?),但我無法找到好的示例。有沒有人有?如何傳遞「允許的」ID列表以過濾Lucene搜索?
我使用C#,但任何語言將是巨大的。謝謝。
我需要返回只是用戶有從Lucene搜索訪問文件。我可以從構成「允許」子集的數據庫中獲取ID列表。我如何將這些傳遞給Lucene?我在網上找到的文章表明我需要使用BitSet和FieldCache(對嗎?),但我無法找到好的示例。有沒有人有?如何傳遞「允許的」ID列表以過濾Lucene搜索?
我使用C#,但任何語言將是巨大的。謝謝。
一旦我知道我需要使用自定義過濾器,要求this question得到正確的答案。
一個簡單的方法是建立一個MultiPhraseQuery與所有的匹配ID的排列,通過MultiPhraseQuery.add(Term[] terms)
。你可以用數千個術語來構建其中的一個,Lucene(一如既往)的表現非常好。
這似乎很有希望,但使用的術語「千」時,我打了maxClauseCount 1024(默認)。我知道我可以增加這個,但是我希望MultiPhraseQuery實際上不會分成幾千個不同的子句。有什麼辦法可以避免這種情況? – Pandincus 2012-11-16 21:24:18