如何将多个 "bq" 参数传递给 SolrNet 中的 LocalParams?
How do I pass multiple "bq" arguments to LocalParams in SolrNet?
LocalParams
其实只是幕后的Dictionary<string, string>
但是,我想传递多个使用键 "bq" 的提升查询。显然,任何添加我的第二个 "bq" 密钥的尝试都将失败并显示 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 查询(或多个任何东西,真的)的诀窍是什么...
上面的评论让我进入了 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)
我的测试表明它按预期工作。
LocalParams
其实只是幕后的Dictionary<string, string>
但是,我想传递多个使用键 "bq" 的提升查询。显然,任何添加我的第二个 "bq" 密钥的尝试都将失败并显示 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 查询(或多个任何东西,真的)的诀窍是什么...
上面的评论让我进入了 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)
我的测试表明它按预期工作。