2013-05-14 56 views
0

查詢中的所有術語應該出現在字段的組合內容中。例如。當我搜索術語的組合是否應返回一個文件:如何搜索Solr中兩個字段的所有術語?

  • 所有術語都存在於「描述」字段中,「元數據」字段或兩個字段
  • 或所有術語被分佈在兩個字段(例如,一個術語存在於「描述」字段和剩餘的兩個術語是存在於「元數據」字段)

q.op=AND所以而是跨越兩個單獨的字段。我應該如何編寫我的查詢?

如果我將索引更改爲使用單個多值字段而不是兩個單獨的字段,那麼這會使此方案更容易嗎?

回答

3

是的,您可以使用copyfield將兩個字段組合成單個多值字段。

<copyField source="metadata" dest="metadata_desc" /> 
<copyField source="descrition" dest="metadata_desc" /> 

查詢可以與q=metadata_desc:"some search"&q.op=AND

隨着q.op搜索中形成的所有條款將是強制性的,應匹配要返回的文檔。默認值是OR

這將照顧匹配它的任何領域以及跨領域。