elasticsearch,Java,elasticsearch" /> elasticsearch,Java,elasticsearch" />

可扩展性Java Web服务的ElasticSearch设计

可扩展性Java Web服务的ElasticSearch设计,java,elasticsearch,Java,elasticsearch,我目前正在设计一个小项目,希望得到一些关于如何最好地使其更适合未来的建议 我有一个基本的对象活动和它的扩展。在一个简单的数据库世界中,我可能有一个用于活动的表、一个用于每个扩展的表和一个活动扩展联接表 然后,我将在适当的表上进行联接,以搜索信息 我的计划是使用CXF将其作为web服务打开,java中间层用于业务逻辑,elasticsearch在后面用于存储和查询数据 那么我的问题是,我是以正确的方式考虑elasticsearch,还是这种方法(不同的表和联接)完全错误。如果正确的话,用Elast

我目前正在设计一个小项目,希望得到一些关于如何最好地使其更适合未来的建议

我有一个基本的对象活动和它的扩展。在一个简单的数据库世界中,我可能有一个用于活动的表、一个用于每个扩展的表和一个活动扩展联接表

然后,我将在适当的表上进行联接,以搜索信息

我的计划是使用CXF将其作为web服务打开,java中间层用于业务逻辑,elasticsearch在后面用于存储和查询数据

那么我的问题是,我是以正确的方式考虑elasticsearch,还是这种方法(不同的表和联接)完全错误。如果正确的话,用ElasticSearch术语表示不同“表”的最佳方式是什么

同样对于elasticsearch,处理对象中的身份信息的最佳方法是什么。最好将_id映射到每个对象中的id字段,还是存储我自己的id字段

干杯,
Rob

我看到过这样的比较,即在ElasticSearch中,索引可以与数据库相比较,而表可以与类型相比较

我想你可以用两种不同的方法来做

选项1:一个索引和一种类型。活动的每个子类型在ES中都被索引为一种类型,有些文档缺少字段。
这将为您提供,

  • 要支持一种类型映射,如果默认值不够,那么您将拥有所有子类型的所有字段
  • 公共字段的分析必须相同。
  • 每种类型的文档都只有字段子集(这不是问题,只是奇怪)

选项2:一个索引和多个类型。活动的每个扩展都是ElasticSearch中的一个类型

  • 要支持的许多类型映射
  • 公共字段可以进行不同的分析
  • 理论上,每个文档都有映射的所有字段
在这两种方法中,您都可以搜索所有子类型。我认为搜索请求的复杂性取决于应用程序

对于大多数应用程序,我想我更喜欢选项2。在ElasticSearch中,的每个子类型都应该是自己的“类型”。如果需要,可以跨类型使用。如果您的子类型相对简单,我认为您可以选择案例1


当您实施它时,我很想听听它是如何运作的。

我目前正在为我的项目实施第二个选项,但需要一段时间才能完全实现。会让你知道它是如何运作的。干杯