使用SolrNet进行空间搜索和多列

使用SolrNet进行空间搜索和多列,solr,full-text-search,spatial,solrnet,Solr,Full Text Search,Spatial,Solrnet,我是新来Solr的。使用以下Solrnet查询运行我的搜索 results = solr.Query(new LocalParams { { "type", "dismax" }, { "qf", "Title Description" } } + new SolrQuery(Keywords) , queryOptions); 上述查询工作正常,没有任何问题。我尝试在同一个查询中使用以下命令进行空间搜索 results = solr.Query(new LocalParams { { "ty

我是新来Solr的。使用以下Solrnet查询运行我的搜索

results = solr.Query(new LocalParams { { "type", "dismax" }, { "qf", "Title Description" } } + new SolrQuery(Keywords) , queryOptions);
上述查询工作正常,没有任何问题。我尝试在同一个查询中使用以下命令进行空间搜索

results = solr.Query(new LocalParams { { "type", "dismax" },{ "pt", "40.7143528,-74.0059731" },{ "sfield", "coords" },{ "d", "15" }, { "qf", "Title Description" } } + new SolrQuery(Keywords) , queryOptions);
上面的查询并没有考虑空间搜索,而是返回所有文档的结果

如果将“type”更改为“geofilt”,则同一查询将执行空间搜索

但这一次,它不会返回相关结果。i、 e.如果用户搜索“Toyota”,上述类型为geofilt的查询可能会在15公里内返回“FORD”


你能告诉我正确的方向吗?

这里有两个子句:按关键字进行的Demax查询和地理空间查询,但你试图将两者都塞进一个子句中。相反,将它们表示为单独的查询子句(单独的查询对象)

伪代码:

var spatial = new LocalParams {{"type","geofilt"},...} + new SolrQuery("");
queryOptions.FilterQueries = new[] {spatial};
var keyword = new LocalParams { { "type", "dismax" }, { "qf", "Title Description" } } + new SolrQuery(Keywords);
var results = solr.Query(keyword, queryoptions);

请正确格式化代码段。谢谢。这是否意味着我必须使用Solrnet运行嵌套查询?我对这个东西真的很陌生,有没有可能得到几行伪代码(用于Solrnet),这样我就可以理解它并对它做更多的研究。这导致了编译时错误。运算符“&&”不能应用于“SolrNet.isolquery”和“SolrNet.isolquery”类型的操作数
var spatial=new LocalParams{{“type”、“geofilt”}、{“pt”、“40.7143528、-74.0059731”}、{“sfield”、“coords”}、{“d”、“15”}+new SolrQuery(“”);var关键字=新的LocalParams{{“type”,“dismax”},{“qf”,“Title Description”}}+新的SolrQuery(SearchKeywords);var results=solr.Query(空间&关键字、查询选项)抱歉,我正在尝试格式化代码段,但似乎不起作用:(@Peter:我甚至不确定Solr在
q
参数中是否支持多个LocalParams。请告诉我它是否有效。如果无效,您将不得不移动其中一个查询以筛选查询。它不起作用。我试图从日志中对Solr查询进行黑客攻击和编辑,以使其正常工作。它的工作原理如下
http://localhost:8080/tempsolr/select/?q={!type=demax qf='Title Description'}本田&fq={!geofilt}发布日期:[2011-06-29T01:16:59Z至2011-07-29T01:17:00Z]&rows=10&sfield=LatLon&pt=40.7143528,-74.0059731&d=50
现在我添加,
sfield,pt,d
作为外部参数。我面临的唯一问题是“geofilt”。我尝试将其作为一个过滤器添加,它在查询中显示为
fq=type:geofilt
。我需要像这样获取它
fq={!geofilt}
请帮助?
var spatial = new LocalParams {{"type","geofilt"},...} + new SolrQuery("");
queryOptions.FilterQueries = new[] {spatial};
var keyword = new LocalParams { { "type", "dismax" }, { "qf", "Title Description" } } + new SolrQuery(Keywords);
var results = solr.Query(keyword, queryoptions);