编写一个查询而不是四个查询



Dears,

我在编写适当的复杂查询时遇到问题。我试着写一个查询,它将做与其他四个查询相同的事情,应该:计数代码为1的文档??还是2??现场ci.rc和计算代码为9的文档??现场ci.rc和计数代码为0的文档??在字段ci.rc中,并且在字段ci.mti中具有代码1210或1230和计算ci.mti 字段中代码为1400或1420的文档

你能告诉我如何写一个查询,这四个单独的查询也能做同样的事情吗?有什么建议吗?请

我的一个查询框架:

GET /log-2020.07.08/_search?size=0
{
"query": {
"bool": {
"should": [
{
"query_string": {
"default_field": "ci.rc",
"query": "(1??) or (2??)"
}
},
{
"query_string": {
"default_field": "ci.rc",
"query": "(9??)"
}
},
{
"bool": {
"must": [
{
"regexp": {
"ci.rc": "0[0-9]{2}"
}
},
{
"regexp": {
"ci.mti": "[0-9]{2}[3|5|7|9][0-9]{1}"
}
}
]
}
}
]
}
},
"aggs": {
"rc": {
"terms": {"field": "ci.rc.keyword","size": 10}
}
}
}

缺少日期条件和最后一个单独的查询:计算ci.mti 字段中代码为1400或1420的文档

谨致问候,Dan

查询字符串查询仅适用于这些用例。在查询字符串查询中,您可以用字符串格式编写每个查询

这里可以是精炼的查询

GET /log-2020.07.08/_search?size=0
{
"query": {
"query_string": {
"query": "(ci.rc:((1??) or (2??) or (9??))) and (ci.rc:/0[0-9]{2}/) and ci.mti:/[0-9]{2}[3|5|7|9][0-9]{1}/"
}
}
}

这里还有一个链接,它具有将几乎每种类型的查询放入查询字符串的语法

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html

最新更新