我对ELK很陌生,似乎从复杂的问题开始;-) 我的元素如下所示:
{
"_index": "asd01",
"_type": "doc",
"_id": "...",
"_score": 0,
"_source": {
"@version": "1",
"my-key": "hello.world.to.everyone",
"@timestamp": "2018-02-05T13:45:00.000Z",
"msg": "myval1"
}
},
{
"_index": "asd01",
"_type": "doc",
"_id": "...",
"_score": 0,
"_source": {
"@version": "1",
"my-key": "helloworld.from.someone",
"@timestamp": "2018-02-05T13:44:59.000Z",
"msg": "myval2"
}
我想过滤以" hello开头的my-key。"并且想要忽略以" helloworld开头的元素。"。点似乎被解释为一个野生动物园,各种逃避似乎都无法发挥作用。
使用过滤器,因为我希望能够在Kibana和API中直接使用相同的表达式。
有人能指出我如何使用Elasticsearch 6.1.1吗?
答案 0 :(得分:0)
它没有被用作通配符,它只是被默认的分析器(标准分析器)删除。如果您未指定映射,elasticsearch将为您创建一个映射。对于字符串字段,它将创建一个多值字段,默认为文本(使用默认分析器 - 标准)和关键字分析器的关键字字段。如果您不想要此行为,则必须在创建索引期间显式指定映射,或者更新它并重新索引数据
尝试使用此
GET asd01/_search
{
"query": {
"wildcard": {
"my-key.keyword": {
"value": "hello.*"
}
}
}
}