c# - 如何将 Spatial Solr 添加到 Solrnet 查询

标签 c# solr solrnet

我正在使用码头在我的 Windows 机器上运行 Solr。我已经下载了 Spatial Solr Plugin我终于设法启动并运行了。我还使用 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 " <RANGEEX_GOOP> "lng=-2.6257 "" at line 1, column 2
4.
Was expecting:
    "}" ...

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

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

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

最佳答案

使用LocalParams类来表示LocalParams in Solr :

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 开始可用。

关于c# - 如何将 Spatial Solr 添加到 Solrnet 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788450/

相关文章:

c# - 在 sqlite 数据库中加密登录名和密码 - C# 中的 SHA 256

c# - 尝试在 EF7 beta6 中使用 'MissingMethodException' 时获取 'dnx . ef migration add'

solr - 在 solr dih 中,在一个位置导入两个双倍

java - 如何使用 Solrj 指定带有嵌入空格的过滤器查询?

search - Solr splitOnCaseChange 在查询时?

lucene - 如何获取 solr 术语频率?

c# - 用 513 个空格字符在 C# 中将文本写入文件

c# - 转换为计算/绝对位置

c# - Solr:如何优先搜索特殊字符

json.net - 如何获取 JSON 格式的所有 SolrNet 查询结果信息?