如何将Space Solr添加到Solrnet查询

我在使用docker的Windows机器上运行Solr。 我已经下载了Spatial Solr插件 ,我最终设法启动并运行。 我也使用Solrnet从我的asp.net mvc项目查询Solr。

现在,将数据添加到我的索引似乎工作正常,SpatialTierUpdateProcessorFactory也可以正常工作。

问题是:

如何使用Solrnet库将空间查询添加到我的常规查询中。 我尝试使用“ExtraParams”参数添加它,但效果不佳。

以下是我尝试将空间查询与数据范围查询相结合的示例。 日期范围查询工作正常,没有附加空间查询:

new SolrQuery("{!spatial lat=51.5224 long=-2.6257 radius=10000 unit=km calc=arc threadCount=2}") && new SolrQuery(MyCustomQuery.Query) && new SolrQuery(DateRangeQuery); 

这导致对Solr的以下查询:

 (({!spatial lat=51.5224 long=-2.6257 radius=100 unit=km calc=arc threadCount=2} AND *:*) AND _date:[2010-05-07T13:13:37Z TO 2011-05-07T13:13:37Z]) 

我得到的错误信息是:

远程服务器返回错误:(400)错误请求。

 SEVERE: org.apache.solr.common.SolrException: org.apache.lucene.queryParser.Pars eException: Cannot parse '(({!spatial lat=51.5224 lng=-2.6257 radius=10000 unit= km calc=arc threadCount=2} AND *:*) AND _date:[2010-05-07T13:09:49Z TO 2011-05-0 7T13:09:49Z])': Encountered "  "lng=-2.6257 "" at line 1, column 2 4. Was expecting: "}" ... 

现在,问题是如果我使用Solr Web Admin页面并对其执行以下查询,一切正常。

 {!spatial lat=50.8371 long=4.35536 radius=100 calc=arc unit=km threadcount=2}text:London 

使用SolrNet调用空间函数的最佳/正确方法是什么? 是以某种方式手动将查询的那一位添加到查询字符串的最佳方法,是这样的?

使用LocalParams类在Solr中表示LocalParams :

 solr.Query(new LocalParams { {"type", "spatial"}, {"lat", "-51.5224"}, {"long", "-2.6257"}, {"radius", "10000"}, {"unit", "km"}, {"calc", "arc"}, {"threadCount", "2"}, } + Query.Field("text").Is("London")); 

从SolrNet 0.3.0b1开始提供。