# Query\_string with wildcard

**URL:** <https://discuss.elastic.co/t/query-string-with-wildcard/270061>\
**Category:** Elasticsearch\
**Created:** [April 13, 2021, 9:16pm UTC](https://discuss.elastic.co/t/query-string-with-wildcard/270061 "2021-04-13T21:16:07Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Akaren](https://avatars.discourse-cdn.com/v4/letter/a/8dc957/32.png) [@Akaren](https://discuss.elastic.co/u/Akaren)\
**Post date:** [April 13, 2021, 9:16pm UTC](https://discuss.elastic.co/t/query-string-with-wildcard/270061/1 "2021-04-13T21:16:07Z")

</div>

I am having latest ES and set a field in mapping to keyword and index: true.

I need to use wildcard so this example from your web is perfect match:

```auto
    {
      "query": {
        "query_string" : {
          "query" : "city.\\*:(this AND that OR thus)"
        }
      }
    }

```

But it is not working for me. I added

`"analyze_wildcard":true`

but still no match with wildcard. I need to search for something like

`name: "John *" AND (city: "Berlin" OR city: "Prague")`

therefore I need to use query\_string and not wildcard search directly.  
So what mapping should I use? r what I am doing wrong?

---

<div class="post-metadata">

**Author:** ![AClerk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aclerk/32/55297_2.png) [@AClerk](https://discuss.elastic.co/u/AClerk)\
**Post date:** [April 13, 2021, 11:44pm UTC](https://discuss.elastic.co/t/query-string-with-wildcard/270061/2 "2021-04-13T23:44:50Z")

</div>

you need to use a [bool query](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html).  
bool is used to combine a few conditions together.  
So your query will be something like (just high level pseudo code) --\>

```auto
{
    "query": {
        "bool": {
            "must": [
                "bool": {
                    "should": [
					{"term": {"city": "Berlin"}}, 
					{"term": {"city": "Prague"}}
                    ]}, 
					{"wildcard": {"name": "john*"}}
                }
            ]
        }
    }

```

Here is a [good example](https://stackoverflow.com/questions/28538760/elasticsearch-bool-query-combine-must-with-or).  
And [another one](https://discuss.elastic.co/t/wildcard-query-with-second-condition-on-other-field/121671/4)

---

<div class="post-metadata">

**Author:** ![Akaren](https://avatars.discourse-cdn.com/v4/letter/a/8dc957/32.png) [@Akaren](https://discuss.elastic.co/u/Akaren)\
**Post date:** [April 14, 2021, 6:48am UTC](https://discuss.elastic.co/t/query-string-with-wildcard/270061/3 "2021-04-14T06:48:32Z")

</div>

Can I make just one query\_string? This is input from search bar by user so I have no idea what user will search for. If he writes wildcard or name of attribute

---

<div class="post-metadata">

**Author:** ![AClerk](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/aclerk/32/55297_2.png) [@AClerk](https://discuss.elastic.co/u/AClerk)\
**Post date:** [April 14, 2021, 10:55pm UTC](https://discuss.elastic.co/t/query-string-with-wildcard/270061/4 "2021-04-14T22:55:38Z")

</div>

Not sure what your requirements are.  
You can create predefined filters and let the users enable/disable them whenever they need to.  
Also, they can edit these filters if that's a requirement.  
I

> [@Akaren](#):
>
> This is input from search bar by user

If this is in Kibana, you can consider creating a [dropdown filter element](https://www.elastic.co/guide/en/kibana/6.8/add-input-controls.html).

---

<div class="post-metadata">

**Author:** ![Akaren](https://avatars.discourse-cdn.com/v4/letter/a/8dc957/32.png) [@Akaren](https://discuss.elastic.co/u/Akaren)\
**Post date:** [April 15, 2021, 6:57am UTC](https://discuss.elastic.co/t/query-string-with-wildcard/270061/5 "2021-04-15T06:57:53Z")

</div>

I have around 30 different attributes taht user can use to filter. He can write name of attribute or I set default fields to search in, he can do range query, wildcard query... so I can't create predefined filters, so many cobinations.

I am not using kibana.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [May 13, 2021, 6:58am UTC](https://discuss.elastic.co/t/query-string-with-wildcard/270061/6 "2021-05-13T06:58:47Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
