如何在SolrNet中将多个“bq”参数传递给LocalParams?

时间:2015-03-19 14:48:51

标签: solrnet

LocalParams实际上只是幕后的Dictionary<string, string>

但是,我想传递多个Boost查询,它们使用键&#34; bq&#34;。显然,任何尝试添加我的第二个&#34; bq&#34;密钥将因An item with the same key has already been added.

而失败
var lp = new LocalParams();
lp.Add("bq", "ContentType:Update^3.0");
lp.Add("bq", "ContentType:Comment^0.5"); // Error occurs here...

通过多个Boost查询(或多个任何东西,真的)的诀窍......

1 个答案:

答案 0 :(得分:2)

上面的评论将我设置为ExtraParams。

我认为它不会起作用,因为那是Dictionary<string, string>(因此让我处于相同的情况),但actual property definitionIEnumerable<KeyValuePair<string, string>>。它只是在构造函数中设置为Dictionary<string,string>

所以我这样做了:

var extraParams = new List<KeyValuePair<string, string>>();
extraParams.Add(new KeyValuePair<string, string>("bq", "SomeQuery^10"));
extraParams.Add(new KeyValuePair<string, string>("bq", "SomeOtherQuery^10"));

var options new new QueryOptions();
options.ExtraParams = extraParams; //Since my List implements the right interface

solr.Query(myQuery, options)

我的测试显示它按预期工作。

相关问题