Solr 7.4:使用BBoxField通过overlayRatio查询和增强的示例

时间:2019-01-24 03:17:22

标签: solr geospatial bounding-box

我向Solr 7.4架构中添加了BBoxField空间字段类型和字段,现在尝试查看如何查询Solr来提高具有更高overlayRatio值的结果。文档中的示例似乎并不适合我(该示例用于使用main查询参数,但在这种情况下,main查询中可能已经使用了关键字)。详细信息如下: 我正在使用一个Solr模式,该模式包含一个需要复制到新BBoxField的字段。 复制的字段如下所述:

<dynamicField name="*_geom" type="location_rpt" stored="true" indexed="true"/> 

其中location_rpt的定义如下:

<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
               geo="true" distErrPct="0.025" maxDistErr="0.001" distanceUnits="kilometers"/>

我添加了以下内容来定义要创建的 new BBoxField 字段:

 <dynamicField name="*_bboxtype" type="bbox" stored="true" indexed="true"/>
 <fieldType name="bbox" class="solr.BBoxField"
           geo="true" distanceUnits="kilometers" numberType="pdouble" />
 <fieldType name="pdouble" class="solr.DoublePointField" docValues="true"/> 
 <copyField source="*_geom" dest="*_bboxtype"/>

这些值似乎正确填充。例如,如果我有 "solr_geom": "ENVELOPE(-80, -69.883331, 45, 40)"在我要添加的solr文档中,以下字段也被填充:

"solr_bboxtype": "ENVELOPE(-80, -69.883331, 45, 40)",
"solr_bboxtype__minX": -80.0,
"solr_bboxtype__minY": 40.0,
"solr_bboxtype__maxX": -69.883331,
"solr_bboxtype__maxY": 45.0

当我尝试基于示例[here] 1运行查询时,在测试时没有任何结果: select?q = {!field f = solr_bboxtype score = overlapRatio} Intersects(ENVELOPE(-80,-69.883331,45,40)) 我如何构造查询或架构的任何部分时出错?

我真正要寻找的是如何检索overlayRatio得分并将其用于提高结果?如果我想使用boostRatio分数来构建增强查询或函数来增强与给定边界框更紧密重叠的文档,我将如何创建查询来做到这一点?另外,我们还希望启用带有关键字搜索的查询,并且根据与给定边界框相交的内容来过滤结果,因此q = keyword已经作为查询的一部分存在。

对此我将不胜感激!非常感谢你!

0 个答案:

没有答案