Elasticsearch-以脚本结果为值创建新字段



如何创建一个名为";消息";其具有类型";关键字";以及我的脚本结果的内容:

GET log-sup-app1-32012-2021-11-08t11-00-49/_search
{
"script_fields": {
"message": {
"script": { 
"source": """
String str = doc['@mt'].value;

Map m = new HashMap();

for (key in params._source.keySet()) {
if (doc.containsKey(key)) {
if (doc[key].size() != 0) {
m.put(key, doc[key].value.toString());
}
}
}

for (Map.Entry entry : m.entrySet()) {
str = str.replace("{" + entry.getKey() + "}", entry.getValue());
}

return str; (e.g. returns 'This is the Test Result')
"""
}
}
}
}

预期属性:

{
"properties": {
"message": {
"type": "keyword"
}
}
}

预期搜索结果:

{
"message" : "This is the Test Result"
}

堆栈管理->我的模式->脚本化字段修复了问题或使用运行时字段

最新更新