是否有人知道如何组合SolrMultipleCriteriaQuery和LocalParams (在SOLRnet中)?
我尝试过像thad这样的东西(不要担心代码不好,只是为了测试)
var test = solr.Query(BuildQuery(parameters), new QueryOptions
{
FilterQueries = getFilterQueries(),
Facet = new FacetParameters
{
Queries = new[] {
new SolrFacetFieldQuery(new LocalParams {{"ex", "dt"}} + "ju_success") , new SolrFacetFieldQuery(new LocalParams {{"ex", "dt"}} + "dr_success")
}
}
});
...
public ICollection<ISolrQuery> getFilterQueries()
{
//Creating a List of SolrQueries
List<ISolrQuery> ISolrQueryList = new List<ISolrQuery>();
//Adding a new SolrQuery to the List. The Solr Query is contains Parameters for multi select
ISolrQueryList .Add(new LocalParams { { "tag", "dt" } } + Query.Field("dr_success").Is("simple"));
//Creating the MultipleCriteriaQuery and setting the Operator "OR"
var NewMultipleCriteriaQuery = new SolrMultipleCriteriaQuery(ISolrQueryList , "OR");
//Creating the Resultlist
List<ISolrQuery> Resultlist= new List<ISolrQuery>();
Resultlist.Add(NewMultipleCriteriaQuery);
return Resultlist();
}
我尝试做的是使用“OR”运算符的多选择面。
感谢您的帮助!
答案 0 :(得分:0)
您应该可以将LocalParams
添加到SolrMultipleCriteriaQuery
。
public ISolrQuery GetFilterQueries()
{
List<ISolrQuery> iSolrQueryList = new List<ISolrQuery>();
iSolrQueryList.Add(Query.Field("dr_success").Is("simple"));
iSolrQueryList.Add(Query.Field("dr_success2").Is("simple2"));
return new LocalParams { { "tag", "dt" } } + new SolrMultipleCriteriaQuery(iSolrQueryList, "OR");
}