2012-07-28 137 views
1

我在基於Lucene的搜索中遇到了問題。我設計了五個領域的文件。考慮文件是Address address1,addressline2,city,state和pin。如果要執行搜索,則搜索已在所有字段中完成,因此我使用布爾型查詢。所以結果將被檢索。現在,我不僅要回應,還要回應匹配領域。例如,如果城市字段匹配搜索,那麼我應該在城市匹配搜索以及實際搜索響應時作出響應。是否有任何lucene api來適應此?基於Lucene的搜索

+0

你的意思是這樣的:http://stackoverflow.com/a/11697341/465710 – 2012-07-28 20:15:27

+0

不,我不是問連接。 該文件下面, 文件 { 場名字,場中間名;}。 因此對於搜索所有領域我使用布爾項查詢這個樣子, 查詢Q =新BooleanQuery()增加(新TermQuery(「姓」 , 「名」),TRUE); q.add(新TermQuery( 「中間名,」 名「);.那麼結果將是顯而易見的,但效應初探應該是 SomeOtherName 的firstName ------ >如何確定呢? – vvekselva 2012-07-28 20:23:37

+0

你想知道哪些領域相匹配的查詢? – 2012-07-28 23:54:23

回答

1

AFAIK沒有簡單的解決方案來找出哪個字段與查詢匹配。

的選項有:

  1. 嘗試使用命中熒光筆(它知道這場比賽發生的位置,但它顯着慢於大型結果集)
  2. 撥弄IndexSearcher的的解釋方法
  3. 構建自定義解決方案

Hit highlighter experience and workaround findings.

IMH O自己實現這個應該不難,因爲Lucene在某個時間點肯定知道哪個字段產生了匹配,但它在構成響應時將這些信息丟棄爲不必要的重量。
我偶然發現了this custom approach

Try to find more resources on search-lucene.com, the best Lucene/Solr related search engine.

+0

感謝Mbonaci。 – vvekselva 2012-07-29 10:57:03

+0

Mbonaci, 該解決方案將最適合我的問題, http://mail-archives.apache.org/ mod_mbox/lucene的Java的用戶/ 201207.mbox /%3CCABEREKHNn1w KFo2rYNq + [email protected]%3E 我內心的擔憂是,爲布爾查詢做一個二進制分析,並將這些結果與父結果結合起來。 – vvekselva 2012-07-29 11:11:55

+0

我很高興信息幫助。也許你應該試着聯繫Ashish Jaen,看看他最終用什麼來解決這個問題。找出他的郵箱地址不應該太難。 – 2012-07-29 17:15:07