2011-06-16 74 views
3

所以我在Lucene 3.0.2中使用了MultiFieldQueryParser,並且給了它多個字段。我想找出哪個字段與查詢匹配;我在這裏搜索,有一位用戶說絕對沒有辦法做到這一點。這是真的嗎?如果是這樣,任何人都可以推薦一個解決這個或另一個系統,讓我這樣做?當匹配查詢時返回Lucene字段名稱

我可以將整個文檔放在一個字段中,例如「內容」,但我認爲這會讓問題變得更糟。

我想查詢一個數據庫,例如,布拉德和查看查詢是否從電影的名字來了,一個演員的名字,導演的名字,等等,等等

謝謝

+0

任何人都可以幫忙嗎? :) – ae0709 2011-06-16 19:54:41

回答

0

我會強烈建議使用BooleanQuery與stnadard的QueryParser:

BooleanQuery booleanQuery = new BooleanQuery(); 

FuzzyQuery field1Query = new FuzzyQuery(new Term("field1", searchTerm), 0.3f, 1, 10); 
FuzzyQuery field2Query = new FuzzyQuery(new Term("field2", searchTerm), 0.3f, 1, 10); 

booleanQuery.add(field1Query , BooleanClause.Occur.SHOULD); 
booleanQuery.add(field1Query , BooleanClause.Occur.SHOULD); 

這樣你可以在正是你想要的字段進行搜索和調整,以產生微調的結果。假設這是你的最終目標。