如何在elasticsearch中存储大型JSON字符串?

时间:2017-01-29 17:21:45

标签: json elasticsearch indexing

我们正在使用ES2.3。在字段中存储JSON的推荐映射/类型是什么?另外,这些字段的最大建议长度是多少?我们不需要对该字段进行分析,它永远不会成为查询的一部分。该字段将被简单地编入索引,然后在文档中的其他字段与搜索匹配时返回。

该字段可能非常大,因为它将包含一组JSON对象,这些对象定义包含名称,电子邮件地址和问候语的用户数据子集。有效地,该字段将包含针对一组用户的定向练习的结果,该字段将用于驱动向这些用户发送电子邮件的电子邮件过程。这可能会导致10到100个用户通过电子邮件发送10个。

如果我们对最大字段长度有所了解,那么我们可以计算出我们需要多少文档来分割定位结果。

我们真的不想使用每个用户定位的文档,因为这会在规模方面很快失控。

非常感谢任何见解。

2 个答案:

答案 0 :(得分:3)

您可以使用类似(source)的映射对其进行索引:

"json_field": {
    "type": "string",
    "index": "no"

整个文档将被存储,但是这个字段不会被编入索引 - 所以它不会被用于搜索并且不会搞砸你的索引。我们还将此应用于静态信息,如指向详细信息页面或产品图像的超链接。

根据此thread,您不必面对最大字段长度。在存储大型文档时,您仍然必须了解最大Java堆大小(source)。

我希望这能解决你的问题!由于这是我在stackoverflow上的第一个答案,我们非常感谢您的反馈!

干杯,多米尼克

答案 1 :(得分:2)

我建议保存字段而不编制索引,设置类型字符串。