我向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已经作为查询的一部分存在。
对此我将不胜感激!非常感谢你!