2014-01-21 46 views
0

我正在使用qf參數查詢多個字段。但我想知道如何檢索給出結果的字段。Solr edismax。如何檢索給出查詢結果的字段

例如(不是一個真實的例子):

 q={!edismax qf='tag content'}("tablet")AND("pc") 

字段值:

 doc1: 
      tag: tablet 
      content: The test has failled. Use a pc instead. 
     doc2: 
      tag: tablet pc 
      content: The test has worked. 

結果這兩個文件將被退回,因爲它們都在他們的標籤/內容的平板電腦和PC 。 是否有可能知道doc2同時在標籤中觸發,而doc1只有1個標籤中的內容和1個內容中的內容? Debugquery似乎沒有提供有關這方面的信息。

我知道我可以使用qf boost來增加searchfield的重要性。

+0

這樣做有什麼目的?如果您可以告訴我們您正在嘗試處理這些結果,它會有所幫助。 – Arun

+0

讓用戶知道結果是從文件內容還是從用戶添加的標籤中找到。 – DavidVdd

回答

1

,您可以:

  1. 使用Highlighting
  2. 要求與debugQuery =真正的調試信息和分析的得分信息找出來。

我覺得1是比較容易的,但它強加在你的領域的一些限制(必須將它們存儲在例如)

+0

我的領域存儲,所以這不成問題。我不知道突出顯示返回了它擊中的領域。我會試着找出這是否有效。 – DavidVdd

+0

我也想說,嘗試突出顯示。這也是類似問題的答案[如何返回與Solr中的查詢相匹配的列?](http://stackoverflow.com/questions/9629147/how-to-return-column-that-matched-the -query合SOLR)是 – cheffe

0

確定根據您的答覆我的問題。

不幸的是,Solr目前沒有辦法返回哪些字段與查詢結果相匹配,作爲您的默認結果文檔的一部分。如果查詢很簡單,循環返回的存儲字段可能是您最好的選擇。突出顯示也是一個選項。

還有幾個其他的選項這裏建議:http://grokbase.com/t/lucene/solr-user/117nkf36nq/determine-which-field-term-was-found