过滤 Elasticsearch 术语查询
Filter on Elasticsearch terms query
我正在寻找任何用户最后一次登录的时间。
我有两种身份验证类型(Admin、Client),我正在尝试查询以查找事件:身份验证成功 Where authentication_type:Client
离我最近的是:
params='{ "query":{"terms":{"event_type":["authentication_succeeded"]}}}'
data=$(curl -XGET "localhost:9200/logstash-*/_search?scroll=10m&size=500&pretty" -H 'Content-Type: application/json' -d"${params}")
经过许多变体和替代查询类型后,但我无法成功附加过滤器 '{"authentication_type":"Client"}'
您需要将 authentication_type
和 event_type
定义为关键字,然后在搜索查询中对这些字段使用术语过滤器。
您可以阅读带有 multiple terms in this official ES link 的示例过滤器。
下面是使用您的数据显示预期搜索结果的分步示例。
索引映射
{
"mappings": {
"properties": {
"authentication_type": {
"type": "keyword"
},
"event_type" :{
"type" : "keyword"
}
}
}
}
索引示例文档
{
"authentication_type" : "Client",
"event_type" : "authentication_succeeded"
}
{
"authentication_type" : "Client",
"event_type" : "authentication_failed"
}
{
"authentication_type" : "Admin",
"event_type" : "authentication_succeeded"
}
{
"authentication_type" : "Admin",
"event_type" : "authentication_failed"
}
搜索查询
{
"query": {
"bool": {
"filter": [
{
"term": {
"event_type": "authentication_succeeded"
}
},
{
"term": {
"authentication_type": "Client"
}
}
]
}
}
}
搜索结果
"hits": [
{
"_index": "so_60750542",
"_type": "_doc",
"_id": "1",
"_score": 0.0,
"_source": {
"authentication_type": "Client",
"event_type": "authentication_succeeded"
}
}
]
我正在寻找任何用户最后一次登录的时间。
我有两种身份验证类型(Admin、Client),我正在尝试查询以查找事件:身份验证成功 Where authentication_type:Client
离我最近的是:
params='{ "query":{"terms":{"event_type":["authentication_succeeded"]}}}'
data=$(curl -XGET "localhost:9200/logstash-*/_search?scroll=10m&size=500&pretty" -H 'Content-Type: application/json' -d"${params}")
经过许多变体和替代查询类型后,但我无法成功附加过滤器 '{"authentication_type":"Client"}'
您需要将 authentication_type
和 event_type
定义为关键字,然后在搜索查询中对这些字段使用术语过滤器。
您可以阅读带有 multiple terms in this official ES link 的示例过滤器。
下面是使用您的数据显示预期搜索结果的分步示例。
索引映射
{
"mappings": {
"properties": {
"authentication_type": {
"type": "keyword"
},
"event_type" :{
"type" : "keyword"
}
}
}
}
索引示例文档
{
"authentication_type" : "Client",
"event_type" : "authentication_succeeded"
}
{
"authentication_type" : "Client",
"event_type" : "authentication_failed"
}
{
"authentication_type" : "Admin",
"event_type" : "authentication_succeeded"
}
{
"authentication_type" : "Admin",
"event_type" : "authentication_failed"
}
搜索查询
{
"query": {
"bool": {
"filter": [
{
"term": {
"event_type": "authentication_succeeded"
}
},
{
"term": {
"authentication_type": "Client"
}
}
]
}
}
}
搜索结果
"hits": [
{
"_index": "so_60750542",
"_type": "_doc",
"_id": "1",
"_score": 0.0,
"_source": {
"authentication_type": "Client",
"event_type": "authentication_succeeded"
}
}
]