Elasticsearch how to use multi_match with wildcard Elasticsearch how to use multi_match with wildcard elasticsearch elasticsearch

Elasticsearch how to use multi_match with wildcard


Alternatively you could use a query_string query with wildcards.

"query": {    "query_string": {        "query": "*mar*",        "fields": ["user.name", "user.surname"]    }}

This will be slower than using an nGram filter at index-time (see my other answer), but if you are looking for a quick and dirty solution...

Also I am not sure about your mapping, but if you are using user.name instead of name your mapping needs to look like this:

"your_type_name_here": {    "properties": {        "user": {            "type": "object",            "properties": {                "name": {                    "type": "string"                },                "surname": {                    "type": "string"                }            }        }    }}


Such a query worked for me:

{  "query": {    "filtered": {      "query": {        "match_all": {}      },      "filter": {        "bool": {          "should": [            {"query": {"wildcard": {"user.name": {"value": "*mar*"}}}},            {"query": {"wildcard": {"user.surname": {"value": "*mar*"}}}}          ]        }      }    }  }}

Similar to what you are doing, except that in my case there could be different masks for different fields.


I just did this now:

GET _search {    "query": {        "bool": {            "must": [                {                    "range": {                        "theDate": {                            "gte": "2014-01-01",                            "lte": "2014-12-31"                        }                    }                },                {                    "match" : {                        "Country": "USA"                    }                }            ],            "should": [                {                    "wildcard" : { "Id_A" : "0*" }                },                {                    "wildcard" : { "Id_B" : "0*" }                }            ],"minimum_number_should_match": 1        }    }}