【问题标题】:Hibernate search bounding box searchHibernate 搜索边界框搜索
【发布时间】: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


    【解决方案1】:

    Hibernate Search 5 中不支持边界框查询。

    在 Hibernate Search 6 中有这样的支持:见this part of the documentation。 Hibernate Search 6 目前处于 Beta 阶段,API 与 Hibernate Search 5 不同。

    【讨论】:

    • 是的,我也注意到了,但想避免使用测试版。如果它变成 GA,我会很乐意接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多