当前位置: 首页 > 知识库问答 >
问题:

弹性搜索和PostgreSQL与Spring Boot的集成

宋健柏
2023-03-14

我正在用弹性搜索和PostgreSQL构建一个SpringBoot应用程序。我使用PostgreSQL进行写作,使用弹性搜索进行阅读。但我坚持了一些观点

  1. 我们是否需要为弹性搜索和PostgreSQL编写单独的模型(POJO)类?因为我们正在使用Elasticsearch chRepostory进行弹性搜索和JpaRepostory。
  2. 弹性搜索的注释也不同,PostgreSQL的注释在模型类上也不同。

任何人都知道什么是spring boot项目结构,其中弹性搜索用于读取,PostgreSQL用于写入。

共有1个答案

马国源
2023-03-14

如果您使用PostgreSQL作为主要存储来存储数据,使用Elasticsearch作为辅助存储来索引PostgreSQL中的数据以进行搜索。最好用Logstash。

我们使用 Logstash 是因为您的其他数据存储将是关系数据库,以使它们与 Elasticsearch 保持同步

为了实现这一点,你必须创建一个连接PostgreSQL和弹性搜索的配置文件。使用 JDBC 输入插件和弹性搜索输出插件,并使用该配置文件运行 Logstash。从那里开始,每个文档都将同步。

您还可以浏览这个有用的博客,了解如何使弹性搜索与关系数据库保持同步。

 类似资料:
  • 我试着遵循这里列出的Nutch+ES指南 https://gist.github.com/xrstf/b48a970098a8e76943b9 https://qbox.io/blog/scring-the-web-wit-nutch-for-elasticsearch 然而,我无法让他们的组合工作。基本上,我在Nutch上执行了以下命令: 现在,我想将获取的数据索引到ES中,我按照指南进行了操作

  • 我在研究弹性搜索查询。我不能理解这个问题: 我读过这篇文章,但不清楚:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-term-query.html 1-第二个“term”是什么? 2-boost的用法是什么? 3-如何使用一个或多个term进行查询: 名为“title”的字段必须包含:

  • 我有大量相同类型的实体,每个实体都有大量属性,并且我只有以下两种选择来存储它们: 将每个项存储在索引中并执行多索引搜索 将所有enties存储在单个索引中,并且只搜索1个索引。 一般而言,我想要一个时间复杂度之间的比较搜索“N”实体与“M”特征在上述每一种情况!

  • 我有以下格式的弹性搜索文档 } } 我的要求是,当我搜索特定字符串(string.string)时,我只想获得该字符串的FileOffSet(string.FileOffSet)。我该怎么做? 谢谢

  • 我可以搜索正常的查询。包含来自elasticsearch uri search的字段值或排序,但无法运行uri search的术语聚合查询。 我怎么能做到这一点? 术语聚合查询是: curl-u-elastic-XGET'127.0.0.1:9200/indexname/typename/\u搜索?pretty'-d'{“size”:0,aggs:{“groupu by_field”:{“term

  • 我有一个关于书籍的数据集,每本书都可以是一种或多种语言的。每个用户都注册为拥有一种或多种语言。 当用户搜索书籍时,我只想返回那些他们理解所有语言的书籍。 例如,系统中有以下两本书: 如果John被注册为懂英语、德语、法语和意大利语,那么他的查询结果永远不应该包括Book B。 我的系统目前是使用Apache Solr编写的,最后我编写了一个插件来执行子集操作(如果记录的语言是用户语言的子集,则该记