Karmaşık bool sorguda Elastik ara hatası

oy
0

Ben elasticsearch tablodaki bir zaman çerçevesi aramak gerekir, bir elasticsearch sorgusu yapmaya çalışıyorum. Ben Startime ve endTime vardır kayıtları var. Ve arayüzünden ben için dosyaları aramak için gereken zamanı pencereleri olan bir startTime ve endTime veriyorum. kayıtlarda startTime ve BitişZamanı zaman penceresini kullanıcının girdiği zaman aralığı daha küçük olduğu varsayıldığında, ben şu sorguyu oluşturduk:

    {
    _source:[filename,starttime,endtime],
    sort:[{
        starttime:{order:asc}
    }],
    query:{
        bool:{
            should:{
                bool:{
                    must:[
                        range:{
                            starttime:{
                                lte:1489602610000
                            }
                        },
                        range:{
                            endtime:{
                                gte:1489602610000,
                            }
                        }
                    ]
                }
            },
            should:{
                bool:{
                    must:[
                        range:{
                            starttime:{
                                gte:1489602610000
                            }
                        },
                        range:{
                            endtime:{
                                lte:1489689000000
                            }
                        }
                    ]
                }
            },
            should:{
                bool:{
                    must:[
                        range:{
                            starttime:{
                                lte:1489689000000
                            }
                        },
                        range:{
                            endtime:{
                                gte:1489689000000
                            }
                        }
                    ]
                }
            }
            }
        }
}

Ben hatası alıyorum

Beklenmeyen karakter ( ':' (kod 58)): Ayrı Dizi girişlere virgül bekliyordu \ N [Kaynak: org.elasticsearch.transport.netty4.ByteBufStreamInput@29263f09, hat: 11, sütun: 33]

Oluştur 08/11/2018 saat 11:36
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
2

talebinizle ilgili çeşitli sorunlar vardır:

  • tek sarkan virgül
  • Birden fazla bool/shouldmaddeleri
  • range sorguları düzgün küme parantezleri içine sarılmış değil

Aşağıda doğru sorgu bulabilirsiniz:

{
  "_source": [
    "filename",
    "starttime",
    "endtime"
  ],
  "sort": [
    {
      "starttime": {
        "order": "asc"
      }
    }
  ],
  "query": {
    "bool": {
      "should": [
        {
          "bool": {
            "must": [
              {
                "range": {
                  "starttime": {
                    "lte": 1489602610000
                  }
                }
              },
              {
                "range": {
                  "endtime": {
                    "gte": 1489602610000
                  }
                }
              }
            ]
          }
        },
        {
          "bool": {
            "must": [
              {
                "range": {
                  "starttime": {
                    "gte": 1489602610000
                  }
                }
              },
              {
                "range": {
                  "endtime": {
                    "lte": 1489689000000
                  }
                }
              }
            ]
          }
        },
        {
          "bool": {
            "must": [
              {
                "range": {
                  "starttime": {
                    "lte": 1489689000000
                  }
                }
              },
              {
                "range": {
                  "endtime": {
                    "gte": 1489689000000
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}
Cevap 08/11/2018 saat 12:07
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more