可以将弹性中的字段映射限制设置为50k吗



我的应用程序是一个调查创建应用程序,用户可以在其中创建包含许多不同类型问题的调查。然后,每个调查都可以分享给任何数量的人,他们的回答记录如下。。。1响应如下:

{
"id" : 256,                                        // submission id
"timeTaken" : "39.00",
"startTime" : "2020-07-19T05:37:38.873Z",
"state" : "COMPLETED",
"completedTime" : "2020-07-19T05:38:17.873Z",
"deviceType" : "COMPUTER",
"ip" : null,
"account_id" : 2,
"channel_id" : 48,
"contact_id" : null,
"survey_id" : 10,
"trigger_id" : 93,
"trigger_contact_id" : null,
"locked" : false,
"location" : null,
"language" : null,
"submission_id" : 256,
"question_90" : {
"skipped" : false,
"answer_choices" : [ 79 ]
},
"question_122" : {
"skipped" : false,
"otherChoice" : null,
"answer_choices" : [ 115, 113, 111, 110, 114 ]
},
"question_106" : {
"skipped" : false,
"answer_choices" : [ 85 ]
},
"question_120" : {
"answer_txt": "Great service",
"skipped" : false
},
"question_118" : {
"answer_txt": "Hello people",
"skipped" : false
},
"question_121" : {
"skipped" : false,
"answer_date" : "2020-06-04T20:01:49.783Z",
"answer_timezone" : 330
},
"question_108" : {
"skipped" : false,
"answer_int" : "93"
},
"question_105" : {
"skipped" : false,
"answer_string" : "+1 202 9932219"
},
"question_93" : {
"skipped" : false,
"answer_string" : "Kyra60@yahoo.com"
},
"question_117" : {
"skipped" : false
},
"question_92" : {
"skipped" : false,
"answer_txt" : "composite"
},
"question_107" : {
"skipped" : false,
"answer_bool" : true
},
}

我需要这里的所有字段进行分析和查询。但大多数情况下,文档字段限制超过了弹性搜索默认限制1000。我很确定性能是1000,但我怎么能尊重这一点,并插入一个可能有20k多个字段的文档呢。

对此有什么见解吗?

您绝对不应该朝着映射爆炸的方向前进。密钥存储在内存中,所以您会过度消耗RAM和性能较差。你已经在这里记录了:elastic.co/blog/found crash elasticsearch#映射爆炸

通过使用嵌套的数据类型,只需少量的键就可以轻松地映射您的答案。

"answers": [
{
"question_id": 122,
"skipped" : false,
"otherChoice" : null,
"answer_choices" : [ 115, 113, 111, 110, 114 ]
}
]

最新更新