【发布时间】:2021-01-03 13:45:51
【问题描述】:
我有一堆文件,如下所示。我想过滤 projectkey 以 ~ 开头的数据。 我确实读过一些文章,其中说 ~ 是弹性查询中的一个运算符,因此不能真正过滤。 有人可以帮助形成 /branch/_search API 的搜索查询吗??
{
"_index": "branch",
"_type": "_doc",
"_id": "GAz-inQBJWWbwa_v-l9e",
"_version": 1,
"_score": null,
"_source": {
"branchID": "refs/heads/feature/12345",
"displayID": "feature/12345",
"date": "2020-09-14T05:03:20.137Z",
"projectKey": "~user",
"repoKey": "deploy",
"isDefaultBranch": false,
"eventStatus": "CREATED",
"user": "user"
},
"fields": {
"date": [
"2020-09-14T05:03:20.137Z"
]
},
"highlight": {
"projectKey": [
"~@kibana-highlighted-field@user@/kibana-highlighted-field@"
],
"projectKey.keyword": [
"@kibana-highlighted-field@~user@/kibana-highlighted-field@"
],
"user": [
"@kibana-highlighted-field@user@/kibana-highlighted-field@"
]
},
"sort": [
1600059800137
]
}
更新***
我在下面使用 prerana 的答案在我的查询中使用 -prefix
当我使用前缀和范围时仍然有问题 - 我得到以下错误 - 我错过了什么??
GET /branch/_search
{
"query": {
"prefix": {
"projectKey": "~"
},
"range": {
"date": {
"gte": "2020-09-14",
"lte": "2020-09-14"
}
}
}
}
{
"error": {
"root_cause": [
{
"type": "parsing_exception",
"reason": "[prefix] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line": 6,
"col": 5
}
],
"type": "parsing_exception",
"reason": "[prefix] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
"line": 6,
"col": 5
},
"status": 400
}
【问题讨论】:
-
即使它是一个运算符,您也可以像其他任何字符一样转义该字符。你的索引映射是什么?
GET branch/_mapping -
@RaghavVaidhyanathan 请查看我的更新答案,如果这有助于您解决问题,请告诉我
标签: elasticsearch search elastic-stack elasticsearch-5