1

我知道我需要添加以下代码才能更改为 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 错误请求。

这是记录的查询

局部参数 + 外参数

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'
4

2 回答 2

2

qt参数选择一个请求处理程序。因此,如果您没有名为“dismax”的请求处理程序并且您定义qt=dismax了您将获得 404。

因此,要么定义 qt=dismax 和一个 'dismax' 请求处理程序,要么通过 LocalParams 使用 dismax 查询解析器。

于 2011-05-24T02:02:13.483 回答
0

(很晚的回复,但值得任何登陆这里的人)

尝试使用本地参数,它会是这样的:

solr.Query(new LocalParams {{"type", "dismax"},{"qf", "myfield"}} + new SolrQuery("solr rocks"));

查看 LocalParams 部分: https ://github.com/mausch/SolrNet/blob/master/Documentation/Querying.md

于 2015-05-26T18:13:49.190 回答