Home > Mobile >  how to combine "prefix" with "range"?
how to combine "prefix" with "range"?

Time:12-17

I'm trying to search using prefix and range.

This works:

GET /traffic-*/_search
{
  "query": {
      "prefix": {
          "src": {
              "value": "192."
          }
      }
  }
}  

But when I try to throw in range I get an error:

GET /traffic-*/_search
{
 "query": {
    "prefix": {
      "src": {
          "value": "192."
      }
    },
    "bool": {
        "must": [
              {
                "range" : {
                    "score" : {
                        "gte": 7
                    }
                }
              }
            ]
          }
    }
 }    

Here's the error:

{
  "error": {
    "root_cause": [
      {
        "type": "parsing_exception",
        "reason": "[prefix] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
        "line": 8,
        "col": 5
      }
    ],
    "type": "parsing_exception",
    "reason": "[prefix] malformed query, expected [END_OBJECT] but found [FIELD_NAME]",
    "line": 8,
    "col": 5
  },
  "status": 400
}

I tried it a lot of other ways, including like this, but still got the same error:

GET /traffic-*/_search
{
 "query": {
    "bool": {
        "must": [{
            "prefix": {
              "src": {
                  "value": "192."
                }
              },
              "range" : {
                  "score" : {
                      "gte": 7
                  }
              }
            }]
          }
    }
 } 

How do I correct this syntax?

CodePudding user response:

Try add "prefix" and "range" query inside Must Bool Query. Like this:

{
  "query": {
    "bool": {
      "must": [
        {
          "prefix": {
            "src": {
              "value": "192."
            }
          }
        },
        {
          "range": {
            "score": {
              "gte": 7
            }
          }
        }
      ]
    }
  }
} 
  • Related