我假设您已经在使用ExtraParams
设置 sField & pt 参数。您应该也可以向其中添加 facet.query 参数。
var results = solr.Query(SolrQuery.All, new QueryOptions
{
ExtraParams = new Dictionary<string, string> {
{ "sfield", "store" } ,
{ "pt", "45.15,-93.85" }
{ "facet.query", "{!frange l=0 u=5}geodist()" } ,
{ "facet.query", "{!frange l=5.001 u=3000}geodist()" } ,
}
});
return results;
此外,您也许可以SolrFacetQuery
结合使用LocalParams
来构建方面查询。检查以下链接以获取一些示例:
更新:
如评论中所述,ExtraParams
由于它是字典对象,因此无法使用,因此不允许使用多个 facet.query 参数。但是,我能够使用上面链接的 SolrNet Facet Wiki 页面中描述的 Facet 查询来创建以下内容:
var facet1 = new SolrFacetQuery(new SolrQuery("{!frange l=0 u=5}geodist()}"));
var facet2 = new SolrFacetQuery(new SolrQuery("{!frange l=5.001 u=3000}geodist()}"));
var results = solr.Query(SolrQuery.All, new QueryOptions
{
ExtraParams = new Dictionary<string, string>
{
{"sfield", "store"},
{"pt", "45.15,-93.85"}
},
Facet = new FacetParameters
{
Queries = new[]
{
facet1, facet2
}
}
});
return results;