【发布时间】:2020-04-10 20:29:51
【问题描述】:
我正在使用Hibernate Search 5 使用 Apache Lucene 实现全文服务。我可以按照this site 中的步骤进行文本搜索。
现在我需要在实体中添加一个地理位置(纬度/经度)字段并引用这个documentation,似乎休眠允许使用@Latitude 和@Longitude 注释定义一个。
我的要求是找到与给定关键字匹配并落在边界地理多边形内的所有实体(给定边界框的左上角点和右下角点)。
在 hibernate 文档中进一步参考,我发现支持在特定距离内查找实体(更像是一个边界圆),如下所示
org.apache.lucene.search.Query luceneQuery = builder
.spatial()
.within( radius, Unit.KM )
.ofLatitude( centerLatitude )
.andLongitude( centerLongitude )
.createQuery();
有没有办法通过边界多边形而不是半径进行搜索?
作为一种解决方法,我可以提供一个足够大的半径来绑定我的盒子,但是我最终会过度获取数据。
【问题讨论】:
标签: hibernate hibernate-search