2011-05-19 58 views
1

我知道我需要添加以下代碼才能更改爲dismax。如何正確使用solrnet執行dismax查詢

ExtraParams = new Dictionary<string, string> { {"qt", "dismax"} } 

但是,如何傳遞「qf」值?我試圖與無濟於事:

new Dictionary<string, string> { {"qt", "dismax"},{"qf","field1 field2"} } 

var matchingItems = solr.Query(new LocalParams {{"type", "dismax"},{"qf","field1 field2"}} 
+ BuildQuery(parameters) ... 

即使只通過我得到一個壞404請求ExtraParams。

這是記錄的查詢

本地參數+ extraparams

GETting 'q={!type=dismax qf='field1 field2'}query text, start=0, rows=10, 
spellcheck=true, facet=true, facet.field=especialidadefacet, 
f.especialidadefacet.facet.mincount=1, facet.field=tipofacet, 
f.tipofacet.facet.mincount=1, facet.field=estadofacet, f.estadofacet.facet.mincount=1, 
qt=dismax' from '/select' 

只額外參數

GETting 'q=query text, start=0, rows=10, spellcheck=true, facet=true, 
facet.field=especialidadefacet, f.especialidadefacet.facet.mincount=1, 
facet.field=tipofacet, f.tipofacet.facet.mincount=1, facet.field=estadofacet, 
f.estadofacet.facet.mincount=1, qt=dismax' from '/select' 
+0

的LocalParams對我來說看起來不錯。輸出結果與Solr wiki中描述的一樣:http://wiki.apache.org/solr/LocalParams。你確定你沒有忘記核心名稱? – 2011-05-20 00:51:07

+0

等等,你爲什麼要用qt = dismax **和** localparams?你有配置中註冊的「dismax」請求處理程序嗎? – 2011-05-20 02:22:54

+0

不,不要在配置中重新設置請求處理程序。 我是否應該只使用本地參數,是否將默認配置爲dismax的預期行爲? – 2011-05-23 20:36:29

回答

2

qt參數選擇一個請求處理程序。因此,如果您沒有名爲'dismax'的請求處理程序,並且您定義了qt=dismax,您將得到一個404.

因此,要麼定義qt = dismax和'dismax'請求處理程序,要麼只是使用dismax通過LocalParams查詢解析器。