Hibernate 休眠搜索边界框搜索
我正在使用ApacheLucene实现一个全文服务实现。我可以按照中的步骤进行文本搜索 现在,我需要在实体中添加一个地理位置(lat/lon)字段,参照这个字段,hibernate似乎允许使用Hibernate 休眠搜索边界框搜索,hibernate,hibernate-search,Hibernate,Hibernate Search,我正在使用ApacheLucene实现一个全文服务实现。我可以按照中的步骤进行文本搜索 现在,我需要在实体中添加一个地理位置(lat/lon)字段,参照这个字段,hibernate似乎允许使用@纬度&@经度注释定义一个 我的要求是找到与给定关键字匹配且位于边界几何多边形(给定边界框的左上角点和右下角点)内的所有实体 进一步参考hibernate文档,我发现支持查找特定距离内的实体(更像一个边界圆),如下所示 有没有一种方法可以通过边界多边形而不是半径进行搜索 作为一种解决方法,我可以提供一个足够
@纬度&@经度注释定义一个
我的要求是找到与给定关键字匹配且位于边界几何多边形(给定边界框的左上角点和右下角点)内的所有实体
进一步参考hibernate文档,我发现支持查找特定距离内的实体(更像一个边界圆),如下所示
有没有一种方法可以通过边界多边形而不是半径进行搜索
作为一种解决方法,我可以提供一个足够大的半径来绑定我的框,但最终我会过度获取数据 Hibernate Search 5中不支持边界框查询
HibernateSearch6中有这样的支持:请参阅。Hibernate Search 6目前处于测试版,API与Hibernate Search 5不同。是的,我也注意到了,但希望避免使用测试版。如果它成为GA,我很乐意接受它。
org.apache.lucene.search.Query luceneQuery = builder
.spatial()
.within( radius, Unit.KM )
.ofLatitude( centerLatitude )
.andLongitude( centerLongitude )
.createQuery();