# Search character ( wild card )

**URL:** <https://discuss.elastic.co/t/search-character-wild-card/226091>\
**Category:** Elasticsearch\
**Created:** [April 1, 2020, 4:44pm UTC](https://discuss.elastic.co/t/search-character-wild-card/226091 "2020-04-01T16:44:53Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![hariskhalique](https://avatars.discourse-cdn.com/v4/letter/h/a3d4f5/32.png) [@hariskhalique](https://discuss.elastic.co/u/hariskhalique)\
**Post date:** [April 1, 2020, 4:44pm UTC](https://discuss.elastic.co/t/search-character-wild-card/226091/1 "2020-04-01T16:44:53Z")

</div>

How we use wild card to search in elasticsearch. I try with following queries

> ```
> "query": {
> "wildcard": {
> "item_name": {
> "value": "*Iko*",
> "boost": 1.0,
> "rewrite": "constant_score"
> }
> }
> 
> ```

and like this

```auto
"match": {
  "item_name": "*Ik"
}

```

and like this

```auto
"regexp": {
  "item_name": "^Iko"
}

```

data have value

```auto
{
              "_index" : "product_detail_info",
              "_type" : "doc",
              "_id" : "1733951907733120138583162807",
              "_score" : 6.0950193,
              "_source" : {
                "image_product_name" : "5dd90d61e82a7.jpg",
                "item_sku" : "SS190773",
                "item_id" : 190773,
                "cat_name" : "T-Shirts",
                "product_id" : 31201,
                "item_name" : "Ikonik Karl Pocket T-Shirt"
              }

```

and I want to apply same search on more then one fields

thanks

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [April 1, 2020, 4:49pm UTC](https://discuss.elastic.co/t/search-character-wild-card/226091/2 "2020-04-01T16:49:50Z")

</div>

What is the mapping of that field? Is it by any chance mapped as `text`? If you are using default mappings you could try the `keyword` sub field.

---

<div class="post-metadata">

**Author:** ![hariskhalique](https://avatars.discourse-cdn.com/v4/letter/h/a3d4f5/32.png) [@hariskhalique](https://discuss.elastic.co/u/hariskhalique)\
**Post date:** [April 1, 2020, 4:52pm UTC](https://discuss.elastic.co/t/search-character-wild-card/226091/3 "2020-04-01T16:52:19Z")

</div>

Yes it is mapped as text

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [April 1, 2020, 4:53pm UTC](https://discuss.elastic.co/t/search-character-wild-card/226091/4 "2020-04-01T16:53:37Z")

</div>

Do you have a keyword sub field you can use instead?

---

<div class="post-metadata">

**Author:** ![hariskhalique](https://avatars.discourse-cdn.com/v4/letter/h/a3d4f5/32.png) [@hariskhalique](https://discuss.elastic.co/u/hariskhalique)\
**Post date:** [April 1, 2020, 4:58pm UTC](https://discuss.elastic.co/t/search-character-wild-card/226091/5 "2020-04-01T16:58:48Z")

</div>

it works. How about searching in multiple fields ?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [April 1, 2020, 5:10pm UTC](https://discuss.elastic.co/t/search-character-wild-card/226091/6 "2020-04-01T17:10:50Z")

</div>

I recommend reading this: [Query string query | Elasticsearch Guide [8.11] | Elastic](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-wildcard)

> Allowing a wildcard at the beginning of a word (eg `"*ing"` ) is particularly heavy, because all terms in the index need to be examined, just in case they match. Leading wildcards can be disabled by setting `allow_leading_wildcard` to `false` .

Although it will be improved in the future, the query you are running will be extremely slow IMO.

---

<div class="post-metadata">

**Author:** ![hariskhalique](https://avatars.discourse-cdn.com/v4/letter/h/a3d4f5/32.png) [@hariskhalique](https://discuss.elastic.co/u/hariskhalique)\
**Post date:** [April 1, 2020, 5:12pm UTC](https://discuss.elastic.co/t/search-character-wild-card/226091/7 "2020-04-01T17:12:38Z")

</div>

Agreed. I want to use wildcard in more then one fields.

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [April 1, 2020, 5:34pm UTC](https://discuss.elastic.co/t/search-character-wild-card/226091/8 "2020-04-01T17:34:56Z")

</div>

Use the query string query maybe?

---

<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:** [April 29, 2020, 5:34pm UTC](https://discuss.elastic.co/t/search-character-wild-card/226091/9 "2020-04-29T17:34:57Z")

</div>

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