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查询(或多个任何东西,真的)的诀窍......
答案 0 :(得分:2)
上面的评论将我设置为ExtraParams。
我认为它不会起作用,因为那是Dictionary<string, string>
(因此让我处于相同的情况),但actual property definition是IEnumerable<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)
我的测试显示它按预期工作。