# Search in multi\_field type

**URL:** <https://discuss.elastic.co/t/search-in-multi-field-type/28516>\
**Category:** Elasticsearch\
**Created:** [September 2, 2015, 10:49am UTC](https://discuss.elastic.co/t/search-in-multi-field-type/28516 "2015-09-02T10:49:34Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![div\_sriram\_Sriram](https://avatars.discourse-cdn.com/v4/letter/d/d2c977/32.png) [@div\_sriram\_Sriram](https://discuss.elastic.co/u/div_sriram_Sriram)\
**Post date:** [September 2, 2015, 10:49am UTC](https://discuss.elastic.co/t/search-in-multi-field-type/28516/1 "2015-09-02T10:49:34Z")

</div>

**Usecase:** Typeahead search:  
I have a question with **Multi\_field search** , the property with type I have is:

```
content: {
       type: "string"
       fields: {
             raw: {
                     type: "string"
                     index: "not_analyzed"
                    }
      }
}

```

So as and when I type I must be able to fetch the results, now **what is optimal way to search against content and content.raw field?**

I was thinking of a query like this?

```
    "bool" : {
        "should" : [ 
    		"match" : { 
    			"content" : { "query" : "post", "operator" : "and" } 
   			}, 
    		"match" : { 
    			"content.raw" : { "query" : "postin", "operator" : "and" } 
    		}
    	]
}
```

---

<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:** [September 2, 2015, 11:02am UTC](https://discuss.elastic.co/t/search-in-multi-field-type/28516/2 "2015-09-02T11:02:54Z")

</div>

Well, `should` should be an array of clauses.

So something like:

```
"bool" : {
        "should" : [ 
    		"match" : { 
    			"content" : { "query" : "post", "operator" : "and" } 
   			}, 
    		"match" : { 
    			"content.raw" : { "query" : "postin", "operator" : "and" } 
    		}
    	]
}
```

---

<div class="post-metadata">

**Author:** ![div\_sriram\_Sriram](https://avatars.discourse-cdn.com/v4/letter/d/d2c977/32.png) [@div\_sriram\_Sriram](https://discuss.elastic.co/u/div_sriram_Sriram)\
**Post date:** [September 2, 2015, 11:13am UTC](https://discuss.elastic.co/t/search-in-multi-field-type/28516/3 "2015-09-02T11:13:19Z")

</div>

Thanks @dadoonet My concern is the query itself. Not the syntax.  
I am in the analysis phase. So it would be very helpful if u can help me with the optimal query for the problem.  
I have edited my syntax based on your comments. Many Thanks!!!

---

<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:** [September 2, 2015, 12:32pm UTC](https://discuss.elastic.co/t/search-in-multi-field-type/28516/4 "2015-09-02T12:32:56Z")

</div>

So yes, IMO the way you write the query is correct.

---

<div class="post-metadata">

**Author:** ![div\_sriram\_Sriram](https://avatars.discourse-cdn.com/v4/letter/d/d2c977/32.png) [@div\_sriram\_Sriram](https://discuss.elastic.co/u/div_sriram_Sriram)\
**Post date:** [September 2, 2015, 12:38pm UTC](https://discuss.elastic.co/t/search-in-multi-field-type/28516/5 "2015-09-02T12:38:24Z")

</div>

Thank You 😄

---

<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:** [July 5, 2017, 11:52pm UTC](https://discuss.elastic.co/t/search-in-multi-field-type/28516/7 "2017-07-05T23:52:19Z")

</div>


