2013-01-16 63 views
1

我在我的Ajax調用中使用了下面的POST請求,但是我無法添加其他搜索條件。我也希望能夠通過通配符專門搜索其他一些領域。示例「j *」的firstName和「p *」的lastName。我將如何爲這種類型的查詢添加兩個更多條件。當它是一個GET請求時,我知道如何在curl請求中執行它,但不知道如何將其作爲POST請求執行。Elasticsearch請求中的多個條件

在GET請求我只是添加以下內容。

+%2bfirstName:j* 

POST請求

{ 
    "query": { 
     "filtered": { 
      "query": { 
       "range": { 
        "date": { 
         "include_lower": true, 
         "include_upper": false, 
         "from": "1999-01-01", 
         "to": "2002-01-01" 
        } 
       } 
      }, 
      "filter": { 
       "term": { 
        "locationNumber": "453" 
       } 
      } 
     } 

    } 
} 

回答

2

您可以在查詢中使用bool query結合幾個標準。例如:

{ 
    "query": { 
     "filtered": { 
      "query": { 
       "bool": { 
        "must": [ 
         { 
          "range": { 
           "date": { 
            "include_lower": true, 
            "include_upper": false, 
            "from": "1999-01-01", 
            "to": "2002-01-01" 
           } 
          } 
         }, 
         { 
          "wildcard": { 
           "firstName": "j*" 
          } 
         } 
        ] 
       } 
      }, 
      "filter": { 
       "term": { 
        "locationNumber": "453" 
       } 
      } 
     } 

    } 
} 
+0

我發現我也可以不斷爲其他字段添加通配符。這非常棒。你有什麼提示用JS生成這些調用? – zmanc