【问题标题】:Search Engine implementation for relational database like Oracle DBOracle DB 等关系数据库的搜索引擎实现
【发布时间】:2018-10-09 02:56:02
【问题描述】:

我需要为 Oracle 等关系数据库创建搜索引擎。我必须在 Elastic Search 的帮助下创建一个搜索引擎。经过一周的分析仍然不确定;我应该遵循什么样的架构来满足这个要求。

Spring boot-spring data-elasticsearch
Spring data-elasticsearch
Spring boot-hibernatesearch

在此之后,我浏览了这个网站以了解有关休眠搜索的一些想法。

http://hibernate.org/search/releases/5.9/

仍然不是很清楚我必须遵循哪一个来实现关系数据库的搜索引擎。有什么建议吗?

所指的搜索引擎就像附加的搜索组件。

【问题讨论】:

  • 您的问题,就目前的形式而言,可能过于宽泛。但是退后一步;你能告诉我们这个搜索引擎应该做什么吗?
  • @TimBiegeleisen - 我有一个带有全局搜索组件的网络应用程序。因此,如果我开始输入任何键,它应该从该搜索组件中根据输入的键给我一些建议。这些数据来自 Oracle 数据库。它或多或少有点像 google/yahoo 搜索。

标签: java oracle elasticsearch spring-data hibernate-search


【解决方案1】:

如果您的问题是关于使用 Spring-Data 还是 Hibernate Search,那么您可能想看看 my answer to this other question

引用:

由于我是 Hibernate 开发人员,我显然有偏见,但我可以 至少提供一些专注于 Hibernate Search 的元素。至于哪个 是否“更好”,由你来判断。

主要区别在于 Hibernate Search 提供了集成 在 JPA 和您选择的索引(Lucene 或 Elasticsearch)之间:

  • Hibernate Search 将根据您的 JPA 实体的变化自动在您的全文索引中添加/更新/删除文档(如 提交事务后立即执行)。
  • Hibernate Search 将允许您构建全文查询(全文世界),并将结果检索为托管实体(JPA 世界)。

据我了解,Spring-Data-Elasticsearch 专注于 访问 Elasticsearch 并且没有任何 JPA 集成。那是 也就是说,你可以使用Spring-Data-JPA,你可以使用 Spring-Data-Elasticsearch,但它们不会相互通信。 您将拥有两个独立的模型,您将对其进行更新和查询 分开。

其他一些元素:

  • 如果您不需要分布式索引,Hibernate Search 可以在嵌入式 Lucene 模式下运行,而无需所有 Elasticsearch 堆栈。它会 可能更轻量级。
  • 在自定义 Elasticsearch 映射或使用高级 Elasticsearch 时,Hibernate Search当前不是很灵活 功能,因为抽象层。这将在 不过,未来 (Hibernate Search 6)。
  • Spring-Data-HibernateSearch 模块正在开发中,可让您受益于两全其美。它还没有发布并且 但是,还没有很好的记录: https://github.com/snowdrop/spring-boot-hibernate-search-booster

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-02
    • 2017-07-23
    • 1970-01-01
    • 2013-04-20
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    相关资源
    最近更新 更多