我有一些带有某些字段的索引,我的文档包含有效的"类别"数据还包含" url"(已分析字段)数据但不包含respsize .. 在另一方面,包含" respsize"数据(大于0)也包含" url"数据但不包含"类别"数据.. 我认为你明白了,我需要连接或交叉,无论查询返回的所有文档都包含respsize和具有相同url文档的类别。
这是我到目前为止所做的;(分析了url字段,其余部分没有分析)
我需要一个dsl查询,它返回具有相同网址标记的记录(在此方案中,它将是www.domainname.com),包含合并类别和respsize, 我只想在第二个img"类别":" 27"比如img1,但当然还有其他所有领域。
这是我的查询,但没有工作
GET webproxylog/accesslog/_search
{
"query": {
"filtered": {
"filter" : {
"and" : {
"filters": [
{
"not": {
"filter": {
"terms": {
"category": [
"-",
"-1",
"0"
]
},
"term": {
"respsize": "0"
}
}
},
"term": {
"category": "www.hurriyet.com.tr"
}
}
],
"_cache" : true
}
}
}
},
"sort": [
{
"respsize": {
"order": "desc"
}
}
]
}
答案 0 :(得分:0)
您可以尝试以下查询。它将要求url
字段是您指定的字段(即must
),然后接下来的两个子句(即should
)中的任何一个必须为真,即category
应该不是给定术语之一,或者respsize
必须大于0。
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"term": {
"url": "www.hurriyet.com.tr"
}
}
],
"should": [
{
"not": {
"terms": {
"category": [
"-",
"-1",
"0"
]
}
}
},
{
"range": {
"respsize": {
"gt": 0
}
}
}
]
}
}
}
}
}