【问题标题】:Hibernate-search 5.0 spatial - Not sure it is storing lat/lon in hashesHibernate-search 5.0 spatial - 不确定它是否在散列中存储纬度/经度
【发布时间】:2016-06-21 05:33:58
【问题描述】:

我正在使用 Hibernate-Search 5.2,并尝试使用空间哈希来索引坐标。我在 PostgreSQL 9.4 中使用它。

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

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

这是我班级的一个示例:

@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;

【问题讨论】:

    标签: java hibernate postgresql lucene hibernate-search


    【解决方案1】:

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

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

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

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

    另请参阅参考文档中的Directory Configuration

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

    【讨论】:

    • 这是有道理的。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    相关资源
    最近更新 更多