java - Hibernate-search 5.0 空间 - 不确定它是否在哈希中存储纬度/经度

标签 java hibernate postgresql lucene hibernate-search

我正在使用 Hibernate-Search 5.2 ,并尝试使用空间哈希来索引坐标。我将其与 PostgreSQL 9.4 一起使用。

我已按照说明进行操作,一切正常(搜索返回结果),但是当我查看 pgAdmin 中存储的纬度和经度值时,我看到的是实际数值,而不是我预期的哈希值。

这是正常行为还是我实际上没有按照最初的意图将值存储为哈希值?

这是我的类(class)示例:

@Entity
@Indexed
@Spatial(spatialMode = SpatialMode.HASH, name = "entityLocation")
@Table
public class RatedEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long entityId;

    private String name;
    private String entityType;
    private String address;
    private String city;

    @Column(length = 2)
    private String state;

    @Latitude(of = "entityLocation")
    @Column
    private Double latitude;

    @Longitude(of = "entityLocation")
    @Column
    private Double longitude;

最佳答案

Hibernate Search 将数据库存储的实体与 Apache Lucene 索引同步。

此索引未存储在关系数据库中,因此使用pgAdmin(或其他 SQL 终端)不是检查索引内容的正确工具,因为您正在有效地使用 NoSQL 技术与关系型数据库结合。

Lucene 索引通常存储在文件系统上,该位置由 Hibernate 配置属性控制,例如:

hibernate.search.default.directory_provider = filesystem
hibernate.search.default.indexBase = /usr/lucene/indexes

另请参阅Directory Configuration在引用文档中。

要打开这些高性能二进制编码索引,您可能需要使用类似 Luke 的工具。 ,或 Eclipse tooling for Hibernate Search

关于java - Hibernate-search 5.0 空间 - 不确定它是否在哈希中存储纬度/经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37936311/

相关文章:

python - Peewee:如何从数组字段为空的 Postgres 中选择数据?

postgresql - 从具有分隔符和不同数量元素的列中获取子字符串

sql - 如何获取所有对象的列表? - PostgreSQL

java - 更新丢失文件的目标目录并设置属性

java - 验证页码/打印范围

java - 第一次 Android 程序员无法在 Activity 之间移动

java - hibernate 可能导致此 'fetch out of sequence' 错误吗?

java - Kafka消费者组,创建消费者组时将offset设置为0

postgresql - 如何使用 PGpoint 使用 PostgreSQL 进行地理定位?

java - 如何将 Class< 类型的值存储到数据库?使用 Hibernate 扩展 View>