2011-11-28 46 views
5

我在尋找一個Lucene索引和我建立的搜索查詢像如何使用查詢語法搜索Lucene中的多個字段?

field1:"hello" AND field2:"world" 

,但我想以搜索任何字段中的值,以及在同一個查詢即在特定的字段中的值

field1:"hello" AND anyField:"world" 

誰能告訴我如何以這種方式搜索所有索引字段?

回答

6

基於我對這個問題的答案:Impact of repeat value across multiple fields in Lucene ...

我可以把同樣的搜索詞到多個領域,並從而創造一個「全」字段,我把一切都放在這樣我可以。創建一個查詢,如...

field1:"hello" AND all:"world" 

這似乎工作得很好,防止需要巨大的搜索查詢,顯然對性能的影響是最小的。

+0

嗨,你可以發佈上述語法的一些示例代碼.... –

2

帶有每個字段的子句的布爾(OR)查詢用於搜索多個字段。 MultiFieldQueryParser也會這樣做,但這些字段仍然需要枚舉。沒有隱含的「全部」字段;但IndexReader.getFieldNames可以獲取它們。

+0

我創建了一個明確的「all」字段......它看起來並不理想,但每次創建字段時我都會添加到「all」字段。它的作品,但似乎有點垃圾。真的,我想要做的是爲每個索引字段定義多個名稱,以便我可以創建類別或能夠在字段名稱中使用通配符來搜索字段,以便我可以在「name *」中搜索「name.firstname:bob」 – Edd

相關問題