json - 如何在 elasticsearch 中存储大的 JSON 字符串?

标签 json elasticsearch indexing

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

该字段可能会非常大,因为它将包含一个 JSON 对象数组,定义用户数据的一个子集,其中包含姓名、电子邮件地址和问候语。实际上,该字段将包含针对一组用户的定位练习的结果,然后该字段将用于驱动向这些用户发送电子邮件的电子邮件进程。这可能会导致成千上万的用户发送电子邮件。

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

我们真的不想针对每个用户使用一个文档,因为这会很快在规模上失控。

如有任何见解,我们将不胜感激。

最佳答案

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

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

整个文档将被存储,但该字段不会被索引 - 因此它不会可用于搜索并且不会弄乱您的索引。我们还将此应用于静态信息,例如指向详细信息页面或产品图片的超链接。

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

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

干杯,多米尼克

关于json - 如何在 elasticsearch 中存储大的 JSON 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41923760/

相关文章:

java - 指南针在搜索查询中返回 0 行且包含 “#”(哈希字符)

php - json 显示 mysql 结果的重复输出

php - Json 编码对某些字符返回空值

json - 如何正确地将 json 结果附加到选择选项

apache-spark - Spark作业(Java)无法将数据写入Elasticsearch集群

mysql - 如何在 MySQL 的表中构造另一个主键?

json - 解析 JSON Postman 响应

reactjs - 静态S3网站(React SPA)记录到Elasticsearch

elasticsearch - 无法在Elasticsearch中更新映射

sql - 从表更新 - 不使用索引(第 9.1 页)