2014-04-07 58 views
0

我想在我的后端使用elasticsearch数据,我有几个问题:推荐的方式来存储elasticsearch

  1. 我的数据库中包含的产品的半结构化数据,即每个产品可以在其内部都有不同的属性。 我希望能够搜索大多数字段上的文本,并在一个特定字段上搜索文本。 在ES中存储文档的推荐方式是什么?将所有文本存储在字段中(可能使用_all功能)或将其保留在不同的字段中。 我对不同领域的关注是,我可能有很多索引(因为我有许多不同的产品属性)

  2. 我使用couchbase作为我的主要数据库。 假设我需要对文档进行一些修改,将文档从它移动到ES的推荐方式是什么? 要从我的代码显式更新索引或使用外部工具?

10倍,

+2

请考虑分两个帖子分析您的问题,您不会标记出几个正确答案。 –

+0

ES上有一个传输couchbase插件,用于自动复制数据。 https://github.com/couchbaselabs/elasticsearch-transport-couchbase 也听@KristapsKarlsons :) – scalabilitysolved

回答

1

这取决于你多少文档在一个时间索引。如果文档数量大于200万。那么最好将所有内容存储在一个字段中,这样可以在编制索引时节省时间。

如果索引的文档非常少,则将它们逐字段索引,然后在_all字段上进行搜索。这样可以清楚地看到数据,对于显示内容和不显示内容会非常有帮助。

+0

感谢您的答案。 我不需要索引太多,但我有很多读。 但是,为了澄清,我想更好地理解它是如何影响ES的文档结构的...... 它是否将每个字段保存在不同的索引中? 如果是,那么它意味着如果我有不同的产品具有很多不同的属性,那么我将有很多索引(假设每个字段的索引)。 –

+0

这里的索引是指sql中的模式或数据库。类型意味着一个表和字段是该表中的列....所以,从这个字段不会是一个不同的索引。会发生什么情况是,当您为不同字段的文档编制索引时,映射将不断更新,如果文档较大,则需要大量时间进行索引。如果数据或文档较少,那没关系...... – harsha

相关问题