elasticsearch ElasticSearch-亲子关系是最好的方法吗?,elasticsearch,parent-child,elasticsearch,Parent Child" /> elasticsearch ElasticSearch-亲子关系是最好的方法吗?,elasticsearch,parent-child,elasticsearch,Parent Child" />

elasticsearch ElasticSearch-亲子关系是最好的方法吗?

elasticsearch ElasticSearch-亲子关系是最好的方法吗?,elasticsearch,parent-child,elasticsearch,Parent Child,问题: 我有两种类型的存储库,一种是文档,另一种是页面。文档和页面之间存在关系。您可以将其视为一个包含1页或多页的文档(书)。实际上,我可能需要从符合某些条件的文档中查询页面,反之亦然。因此,我想说的是,我可能会在某个时候查询某些页面,如果不是全部,则会从文档匹配的页面查询 目前,我已在父对象中创建了父子关系,我已为文档编制了索引,在子对象中,我已参照文档为页面编制了索引 但是我们的设置中存在性能问题,随着文档的增加,搜索和索引查询变得非常缓慢。我还发现,不建议使用父子关系,因为这对elasti

问题:

我有两种类型的存储库,一种是文档,另一种是页面。文档和页面之间存在关系。您可以将其视为一个包含1页或多页的文档(书)。实际上,我可能需要从符合某些条件的文档中查询页面,反之亦然。因此,我想说的是,我可能会在某个时候查询某些页面,如果不是全部,则会从文档匹配的页面查询

目前,我已在父对象中创建了父子关系,我已为文档编制了索引,在子对象中,我已参照文档为页面编制了索引

但是我们的设置中存在性能问题,随着文档的增加,搜索和索引查询变得非常缓慢。我还发现,不建议使用父子关系,因为这对elasticsearch来说很耗时


是否有其他数据模型可用于解决此问题。

是。在页面对象中索引文档中的所有信息。
如果我用另一种方式说:在索引时而不是在搜索时进行连接。

对于sql,您的方法是完美的,但elasticsearch不支持类似的连接,因此手动进行连接会导致性能问题。我的建议是不要进行规范化,而是通过嵌入将这两个索引保持在一个索引中docuements@ArpitSolanki您是否建议使用嵌套类型?。我知道SQL非常适合这种方法,但问题是页面包含文本数据,Elasticsearch最适合文本数据。所以只有我继续使用ElasticSearch,问题是有时候我只想查询文档,而不想查询页面。所以,若我在查询期间将它们嵌入索引时间,我将得到重复的值。在索引期间,我将为文档的页面提供相同的重复值。是。我可以复制信息。如果需要搜索页面,请为页面编制索引。如果您还需要搜索文档,请为文档编制索引。但是,当我仅在页面索引中查询文档时,我将得到重复的文档,然后我需要运行unique命令,这反过来又很慢。i、 e.)页面与搜索条件匹配的查询文档。否。为页面创建索引,为每个文档创建索引。然后搜索其中一个。或者两者兼而有之,但你可以从你“最喜欢的”一个提高结果。