amazon-web-services - Elasticsearch 索引映射不起作用
问题描述
我是弹性搜索的新手,并尝试阅读我能找到的所有文档,但我很难理解索引创建的映射行为。
我有 AWS CloudWatch 通过 Lambda 订阅将日志从我的应用程序导入 ES。
我正在使用 Kibana 中的开发工具 UI(在 AWS 上)与 ES 对话。运行以下 PUT 命令可以让我设置一个新索引。但是,创建的文档没有我在映射中设置的任何字段。
PUT cwl-2018.08.09
{
"settings" : {
"index" : {
"number_of_shards" : 1
}
},
"mappings": {
"test-log-group": {
"_source": {
"enabled": true
},
"properties": {
"level": { "type": "text" },
"message": { "type": "text" },
"logger": { "type": "text" },
"url": { "type": "text" }
}
}
}
}
下面是通过 CloudWatch 发送到 ES 的示例文档
{
"_index": "cwl-2018.08.09",
"_type": "test-log-group",
"_id": "34205467001770174210014068820960982481947713872776593408",
"_score": 1,
"_source": {
"time": "2018-08-09 15:49:48.1949",
"level": "INFO",
"message": "Test",
"logger": "Logger",
"applicationName": "WebSite",
"url": "/test",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.84 Safari/537.36",
"controller": "Home",
"action": "Test",
"@id": "34205467001770174210014068820960982481947713872776593408",
"@timestamp": "2018-08-09T14:49:48.195Z",
"@message": """{ "time": "2018-08-09 15:49:48.1949", "level": "INFO", "message": "Test", "logger": "Logger", "applicationName": "WebSite", "url": "\/test", "userAgent": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/68.0.3440.84 Safari\/537.36", "controller": "Home", "action": "Test" }""",
"@owner": "751777751431",
"@log_group": "test-log-group",
"@log_stream": "2018/08/09T15.12.19 - 5bb0c1a1-9405-4fc3-98ec-f8c98553f4a8"
}
}
我希望在“_source”字段之外的文档中看到名为“level”、“message”、“logger”和“url”的字段。
我的映射错了吗?
我是否误解了我应该能够在文档结构方面创建什么?
解决方案
推荐阅读
- python - 如何使用 tensorflow_probability 解决此问题?
- python - 为什么乌龟 SetX 不工作?蟒蛇 3.8
- python - 如何使用python从网格中的一条线上获取上下部分的坐标?
- git - 在数据配额限制内从 github 提交中删除文件
- python - PyCharm 调试变量视图:禁用变量地址
- database - “必须”或“可以”一词表示完全参与
- c - 从C中的数字中提取值
- javascript - 无法在 xhtml 页面中执行 primefaces javascript
- java - 以编程方式在相对布局中创建线性布局
- c# - 在第二个 DataGridView 中显示剩余值