# How to implement with complicate wording (hero hero hero)

**URL:** <https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722>\
**Category:** Elasticsearch\
**Created:** [July 15, 2022, 8:44am UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722 "2022-07-15T08:44:39Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ch\_Corporate](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ch_corporate/32/107862_2.png) [@Ch\_Corporate](https://discuss.elastic.co/u/Ch_Corporate)\
**Post date:** [July 15, 2022, 8:44am UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/1 "2022-07-15T08:44:39Z")

</div>

My data is  
Doc 1 hero hero hero  
Doc 2 hero hero  
Doc 3 hero  
We would have Result is Doc 3:"hero"  
How do I implement this case use regular expression or wild card

---

<div class="post-metadata">

**Author:** ![anime\_lover](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/anime_lover/32/100265_2.png) [@anime\_lover](https://discuss.elastic.co/u/anime_lover)\
**Post date:** [July 15, 2022, 10:37am UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/2 "2022-07-15T10:37:09Z")

</div>

can you provide detail information on it ..  
it is incomplete ,and write some query that you have tried such that we can understand what you have tried and what you want.

---

<div class="post-metadata">

**Author:** ![Ch\_Corporate](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ch_corporate/32/107862_2.png) [@Ch\_Corporate](https://discuss.elastic.co/u/Ch_Corporate)\
**Post date:** [July 15, 2022, 10:44am UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/3 "2022-07-15T10:44:41Z")

</div>

Thank you for you quick reply  
.  
GET autocomplete/\_search  
{  
"query": {  
"multi\_match": {  
"query": "hero",  
"fields": [  
"Name"  
]  
}  
},  
"regexp": {  
"menu\_name": {  
"value": "hero\*|hero\*",  
"flags": "ALL",  
"max\_determinized\_states": 10000,  
"rewrite": "constant\_score"  
}  
}  
}

---

<div class="post-metadata">

**Author:** ![anime\_lover](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/anime_lover/32/100265_2.png) [@anime\_lover](https://discuss.elastic.co/u/anime_lover)\
**Post date:** [July 15, 2022, 10:56am UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/4 "2022-07-15T10:56:25Z")

</div>

Now can you tell me that what you want from query ??

- are you trying to get the field with only one hero or what?

---

<div class="post-metadata">

**Author:** ![Ch\_Corporate](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ch_corporate/32/107862_2.png) [@Ch\_Corporate](https://discuss.elastic.co/u/Ch_Corporate)\
**Post date:** [July 15, 2022, 10:58am UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/5 "2022-07-15T10:58:07Z")

</div>

Yes sir I would result only "hero"

---

<div class="post-metadata">

**Author:** ![anime\_lover](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/anime_lover/32/100265_2.png) [@anime\_lover](https://discuss.elastic.co/u/anime_lover)\
**Post date:** [July 15, 2022, 11:08am UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/6 "2022-07-15T11:08:30Z")

</div>

can i get a sample data ...without data i cant check

---

<div class="post-metadata">

**Author:** ![Ch\_Corporate](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ch_corporate/32/107862_2.png) [@Ch\_Corporate](https://discuss.elastic.co/u/Ch_Corporate)\
**Post date:** [July 15, 2022, 11:32am UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/7 "2022-07-15T11:32:12Z")

</div>

**Index ngram**

```auto
PUT autocomplete_test
{
   "settings": {
        "analysis": {
            "analyzer": {
                "trigrams": {
                    "tokenizer": "trigram_tokenizer",
                    "filter": [
                        "lowercase"
                    ]
                }
            },
            "tokenizer": {
                "trigram_tokenizer": {
                    "type": "ngram",
                    "min_gram": 3,
                    "max_gram": 3,
                    "token_chars": []
                }
            }
        }
    },
    "mappings": {

            "properties": {
                "menu_name": {
                    "type": "text",
                    "analyzer": "trigrams" 
                }
            }
        
    }
}

```

**Put data**

```auto
PUT autocomplete_test/_doc/1
{
  "doc1": "hero hero hero"
  
}

PUT autocomplete_test/_doc/2
{
  "doc1": "hero hero"
}

PUT autocomplete_test/_doc/3
{
  "doc1": "hero"
}

**Data**
{
  "took" : 712,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 3,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "autocomplete_test",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "doc1" : "hero hero hero"
        }
      },
      {
        "_index" : "autocomplete_test",
        "_type" : "_doc",
        "_id" : "2",
        "_score" : 1.0,
        "_source" : {
          "doc1" : "hero hero"
        }
      },
      {
        "_index" : "autocomplete_test",
        "_type" : "_doc",
        "_id" : "3",
        "_score" : 1.0,
        "_source" : {
          "doc1" : "hero"
        }
      }
    ]
  }
}

```

\*\*query \*\*

```auto
GET autocomplete/_search
{
"query": {
"multi_match": {
"query": "hero",
"fields": [
"Name"
]
}
},
"regexp": {
"menu_name": {
"value": "hero*|hero*",
"flags": "ALL",
"max_determinized_states": 10000,
"rewrite": "constant_score"
}
}
}

```

---

<div class="post-metadata">

**Author:** ![anime\_lover](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/anime_lover/32/100265_2.png) [@anime\_lover](https://discuss.elastic.co/u/anime_lover)\
**Post date:** [July 15, 2022, 11:45am UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/8 "2022-07-15T11:45:36Z")

</div>

Sorry if i am wrong

Why didn't you use keyword since you need exact matching text . like below:

```auto

GET autocomplete_test/_search
{
  "query": {
    "match": {
      "doc1.keyword": "hero"
    }
  }
}

```

Output

```auto
{
  "took" : 0,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 0.9808292,
    "hits" : [
      {
        "_index" : "autocomplete_test",
        "_type" : "_doc",
        "_id" : "3",
        "_score" : 0.9808292,
        "_source" : {
          "doc1" : "hero"
        }
      }
    ]
  }
}

```

---

<div class="post-metadata">

**Author:** ![Ch\_Corporate](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ch_corporate/32/107862_2.png) [@Ch\_Corporate](https://discuss.elastic.co/u/Ch_Corporate)\
**Post date:** [July 15, 2022, 11:55am UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/9 "2022-07-15T11:55:43Z")

</div>

This feature made for auto complete

"Hero" is result we want  
Is we serch

H :Doc1,Doc2,Doc3  
He :Doc1,Doc2,Doc3  
Her : Doc1,Doc2,Doc3  
Hero : Doc1,Doc2,Doc3

But we need only "Hero":Doc3

We not sure we need how to implement by Regexp query or script Regexp query

---

<div class="post-metadata">

**Author:** ![anime\_lover](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/anime_lover/32/100265_2.png) [@anime\_lover](https://discuss.elastic.co/u/anime_lover)\
**Post date:** [July 15, 2022, 12:20pm UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/10 "2022-07-15T12:20:13Z")

</div>

as per my knowledge it is difficult to achieve ...but as per me it is not possible ..  
If you find any solution please enlighten me too

---

<div class="post-metadata">

**Author:** ![Ch\_Corporate](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ch_corporate/32/107862_2.png) [@Ch\_Corporate](https://discuss.elastic.co/u/Ch_Corporate)\
**Post date:** [July 15, 2022, 1:00pm UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/11 "2022-07-15T13:00:58Z")

</div>

Sure I will try and I will let you know.

---

<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:** [August 12, 2022, 1:01pm UTC](https://discuss.elastic.co/t/how-to-implement-with-complicate-wording-hero-hero-hero/309722/12 "2022-08-12T13:01:18Z")

</div>

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