2017-08-14 84 views
0

我Elasticsearch的問題Elasticsearch多範圍錯誤

以下json值在我的本地服務器中工作,但不在遠程服務器中。

ERROR:query doesn't support multiple fields, found [date] and [price]

post.json

{ 
      "query": { 
       "bool": { 
        "must": [ 
         { 
          "query_string": { 
           "query": "product:DESKTOP" 
          } 
         }, 
         { 
          "range": { 
           "date": { 
            "gt": "2018-04-24", 
            "lte": "2018-06-24" 
           }, 
           "price": { 
            "gt": 0, 
            "lte": 2000 
           } 
          } 
         } 
        ] 
       } 
      }, 
      "from": 10, 
      "size": 200   } 

哪裏錯了嗎?謝謝您的回答

回答

1

您只能爲每個range查詢指定一個字段。

嘗試包括兩個單獨的range查詢。他們會和在一起,因爲他們都出現在您的must條款中。

{ 
    "query": { 
     "bool": { 
      "must": [ 
       { 
        "query_string": { 
         "query": "product:DESKTOP" 
        } 
       }, 
       { 
        "range": { 
         "date": { 
          "gt": "2018-04-24", 
          "lte": "2018-06-24" 
         } 
        } 
       }, 
       { 
        "range": { 
         "price": { 
          "gt": 0, 
          "lte": 2000 
         } 
        } 
       } 
      ] 
     } 
    }, 
    "from": 10, 
    "size": 200 
} 
1

您需要多個range查詢,像這樣:

{ 
    "query": { 
     "bool": { 
      "must": [ 
       { 
        "query_string": { 
         "query": "product:DESKTOP" 
        } 
       }, 
       { 
        "range": { 
         "date": { 
          "gt": "2018-04-24", 
          "lte": "2018-06-24" 
         } 
        } 
       }, 
       { 
        "range": { 
         "price": { 
          "gt": 0, 
          "lte": 2000 
         } 
        } 
       } 
      ] 
     } 
    }, 
    "from": 10, 
    "size": 200 
}