我知道我需要添加以下代码才能更改为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) ...
即使只通过ExtraParams,我也收到了404错误请求。
这是记录的查询
本地参数+ 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 :(得分:2)
qt
参数选择请求处理程序。因此,如果您没有名为“dismax”的请求处理程序,并且您定义了qt=dismax
,那么您将获得404。
因此要么定义qt = dismax和'dismax'请求处理程序,要么只需通过LocalParams使用dismax查询解析器。
答案 1 :(得分:0)
(很晚回复,但值得任何人登陆这里)
尝试使用本地参数,它将类似于:
solr.Query(new LocalParams {{"type", "dismax"},{"qf", "myfield"}} + new SolrQuery("solr rocks"));
查看LocalParams部分: https://github.com/mausch/SolrNet/blob/master/Documentation/Querying.md