# Want to search on multiple fields

**URL:** <https://discuss.elastic.co/t/want-to-search-on-multiple-fields/10762>\
**Category:** Elasticsearch\
**Created:** [February 16, 2013, 7:15am UTC](https://discuss.elastic.co/t/want-to-search-on-multiple-fields/10762 "2013-02-16T07:15:31Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mukesh](https://avatars.discourse-cdn.com/v4/letter/m/aeb1de/32.png) [@mukesh](https://discuss.elastic.co/u/mukesh)\
**Post date:** [February 16, 2013, 7:15am UTC](https://discuss.elastic.co/t/want-to-search-on-multiple-fields/10762/1 "2013-02-16T07:15:31Z")

</div>

I want to search on multiple fields,and using this ..but it reds only last  
line so please suggest  
how to search on multiple fields with java

```
                        SearchResponse response = 

```

client.prepareSearch("resume\_index")

.setSearchType(SearchType.DFS\_QUERY\_THEN\_FETCH)  
//  
.addScriptField("KeySkills","asp",QueryBuilders.prefixQuery("CurrentLocation","n",Map\<"CurrentLocation","n"\>))

.setQuery(QueryBuilders.termQuery("Name", "Mahi Singh"))

.setQuery(QueryBuilders.prefixQuery("CurrentLocation","d"))  
//  
.setQuery(QueryBuilders.boolQuery().must(termQuery("CurrentLocation", "d")))

.setQuery(QueryBuilders.prefixQuery("Name", "Mahi Singh"))

.setQuery(QueryBuilders.prefixQuery("CurrentLocation","d"))

.setQuery(QueryBuilders.boolQuery().must(termQuery("CurrentLocation","delhi")).must(termQuery("From","\*\*\*\*r@gmail.com")))  
.setFrom(0)  
.setSize(5)  
.setExplain(true)  
.execute()  
.actionGet();

--  
You received this message because you are subscribed to the Google Groups "elasticsearch" group.  
To unsubscribe from this group and stop receiving emails from it, send an email to [elasticsearch+unsubscribe@googlegroups.com](mailto:elasticsearch+unsubscribe@googlegroups.com).  
For more options, visit [https://groups.google.com/groups/opt\_out](https://groups.google.com/groups/opt_out).

---

<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:** [February 16, 2013, 7:34am UTC](https://discuss.elastic.co/t/want-to-search-on-multiple-fields/10762/2 "2013-02-16T07:34:57Z")

</div>

Have a look at: [http://www.elasticsearch.org/guide/reference/java-api/query-dsl-queries.html](http://www.elasticsearch.org/guide/reference/java-api/query-dsl-queries.html)

See Bool Queries.

Does it help?

--  
David 😉  
Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs

Le 16 févr. 2013 à 08:15, MUKESH PANDEY [mukeshp073@gmail.com](mailto:mukeshp073@gmail.com) a écrit :

I want to search on multiple fields,and using this ..but it reds only last line so please suggest  
how to search on multiple fields with java

```
                        SearchResponse response = client.prepareSearch("resume_index")
                                 .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
                                // .addScriptField("KeySkills","asp",QueryBuilders.prefixQuery("CurrentLocation","n",Map<"CurrentLocation","n">))
                                    .setQuery(QueryBuilders.termQuery("Name", "Mahi Singh"))
                                    .setQuery(QueryBuilders.prefixQuery("CurrentLocation","d"))
                                    // .setQuery(QueryBuilders.boolQuery().must(termQuery("CurrentLocation", "d")))
                                     .setQuery(QueryBuilders.prefixQuery("Name", "Mahi Singh"))
                                   .setQuery(QueryBuilders.prefixQuery("CurrentLocation","d"))
                                   .setQuery(QueryBuilders.boolQuery().must(termQuery("CurrentLocation","delhi")).must(termQuery("From"," **** r@gmail.com")))
                                    .setFrom(0)
                                    .setSize(5)
                                    .setExplain(true)
                                    .execute()
                                    .actionGet();

```

--  
You received this message because you are subscribed to the Google Groups "elasticsearch" group.  
To unsubscribe from this group and stop receiving emails from it, send an email to [elasticsearch+unsubscribe@googlegroups.com](mailto:elasticsearch+unsubscribe@googlegroups.com).  
For more options, visit [https://groups.google.com/groups/opt\_out](https://groups.google.com/groups/opt_out).

--  
You received this message because you are subscribed to the Google Groups "elasticsearch" group.  
To unsubscribe from this group and stop receiving emails from it, send an email to [elasticsearch+unsubscribe@googlegroups.com](mailto:elasticsearch+unsubscribe@googlegroups.com).  
For more options, visit [https://groups.google.com/groups/opt\_out](https://groups.google.com/groups/opt_out).

---

<div class="post-metadata">

**Author:** ![mukesh](https://avatars.discourse-cdn.com/v4/letter/m/aeb1de/32.png) [@mukesh](https://discuss.elastic.co/u/mukesh)\
**Post date:** [February 16, 2013, 8:04am UTC](https://discuss.elastic.co/t/want-to-search-on-multiple-fields/10762/3 "2013-02-16T08:04:16Z")

</div>

Thanks for reply sir,

```
            I have already tried Bool Queries. likes this

```

.setQuery(QueryBuilders.boolQuery()  
.must(termQuery("KeySkills","asp"))  
.must(termQuery("CurrentLocation", "delhi"))  
.must(termQuery("CTC", "1."))  
.must(termQuery("TotalExperience", "1")))

```
      But i think Bool Query work always same type filed with multiple

```

times ......and My requirement is different fileds..I want to search with  
more than one types filed..with java api.

On Sat, Feb 16, 2013 at 1:04 PM, David Pilato [david@pilato.fr](mailto:david@pilato.fr) wrote:

> Have a look at:  
> [Elasticsearch Platform — Find real-time answers at scale | Elastic](http://www.elasticsearch.org/guide/reference/java-api/query-dsl-queries.html)
> 
> See Bool Queries.
> 
> Does it help?
> 
> --  
> David 😉  
> Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs
> 
> Le 16 févr. 2013 à 08:15, MUKESH PANDEY [mukeshp073@gmail.com](mailto:mukeshp073@gmail.com) a écrit :
> 
> I want to search on multiple fields,and using this ..but it reds only  
> last line so please suggest  
> how to search on multiple fields with java
> 
> ```
> SearchResponse response =
> 
> ```
> 
> client.prepareSearch("resume\_index")
> 
> .setSearchType(SearchType.DFS\_QUERY\_THEN\_FETCH)  
> //  
> .addScriptField("KeySkills","asp",QueryBuilders.prefixQuery("CurrentLocation","n",Map\<"CurrentLocation","n"\>))
> 
> .setQuery(QueryBuilders.termQuery("Name", "Mahi Singh"))
> 
> .setQuery(QueryBuilders.prefixQuery("CurrentLocation","d"))  
> //  
> .setQuery(QueryBuilders.boolQuery().must(termQuery("CurrentLocation", "d")))
> 
> .setQuery(QueryBuilders.prefixQuery("Name", "Mahi Singh"))
> 
> .setQuery(QueryBuilders.prefixQuery("CurrentLocation","d"))
> 
> .setQuery(QueryBuilders.boolQuery().must(termQuery("CurrentLocation","delhi")).must(termQuery("From","\*\*\*\*  
> [r@gmail.com](mailto:r@gmail.com)")))  
> .setFrom(0)  
> .setSize(5)  
> .setExplain(true)  
> .execute()  
> .actionGet();
> 
> --  
> You received this message because you are subscribed to the Google Groups  
> "elasticsearch" group.  
> To unsubscribe from this group and stop receiving emails from it, send an  
> email to [elasticsearch+unsubscribe@googlegroups.com](mailto:elasticsearch+unsubscribe@googlegroups.com).  
> For more options, visit [https://groups.google.com/groups/opt\_out](https://groups.google.com/groups/opt_out).
> 
> --  
> You received this message because you are subscribed to the Google Groups  
> "elasticsearch" group.  
> To unsubscribe from this group and stop receiving emails from it, send an  
> email to [elasticsearch+unsubscribe@googlegroups.com](mailto:elasticsearch+unsubscribe@googlegroups.com).  
> For more options, visit [https://groups.google.com/groups/opt\_out](https://groups.google.com/groups/opt_out).

--  
[mukeshp073@gmail.com](mailto:mukeshp073@gmail.com)  
Laitkor.infosolution pvt ltd

--  
You received this message because you are subscribed to the Google Groups "elasticsearch" group.  
To unsubscribe from this group and stop receiving emails from it, send an email to [elasticsearch+unsubscribe@googlegroups.com](mailto:elasticsearch+unsubscribe@googlegroups.com).  
For more options, visit [https://groups.google.com/groups/opt\_out](https://groups.google.com/groups/opt_out).

---

<div class="post-metadata">

**Author:** ![simonw\_2](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/simonw_2/32/1130_2.png) [@simonw\_2](https://discuss.elastic.co/u/simonw_2)\
**Post date:** [February 16, 2013, 3:10pm UTC](https://discuss.elastic.co/t/want-to-search-on-multiple-fields/10762/4 "2013-02-16T15:10:20Z")

</div>

I recommend you to take a look at Match Query or Multi Match Query (for  
multi fields)

> **[Elasticsearch Platform — Find real-time answers at scale](https://www.elastic.co)**
>
> Power insights and outcomes with the Elasticsearch Platform and AI. See into your data and find answers that matter with enterprise solutions designed to help you build, observe, and protect. Try Elasticsearch free today.

this should be a good starter for what you want to do. Hope this helps

simon

On Saturday, February 16, 2013 8:15:31 AM UTC+1, MUKESH PANDEY wrote:

> I want to search on multiple fields,and using this ..but it reds only  
> last line so please suggest  
> how to search on multiple fields with java
> 
> ```
> SearchResponse response = 
> 
> ```
> 
> client.prepareSearch("resume\_index")
> 
> .setSearchType(SearchType.DFS\_QUERY\_THEN\_FETCH)  
> //  
> .addScriptField("KeySkills","asp",QueryBuilders.prefixQuery("CurrentLocation","n",Map\<"CurrentLocation","n"\>))
> 
> .setQuery(QueryBuilders.termQuery("Name", "Mahi Singh"))
> 
> .setQuery(QueryBuilders.prefixQuery("CurrentLocation","d"))  
> //  
> .setQuery(QueryBuilders.boolQuery().must(termQuery("CurrentLocation", "d")))
> 
> .setQuery(QueryBuilders.prefixQuery("Name", "Mahi Singh"))
> 
> .setQuery(QueryBuilders.prefixQuery("CurrentLocation","d"))
> 
> .setQuery(QueryBuilders.boolQuery().must(termQuery("CurrentLocation","delhi")).must(termQuery("From","\*\*\*\*  
> [r...@gmail.com](mailto:r...@gmail.com) \<javascript:\>")))  
> .setFrom(0)  
> .setSize(5)  
> .setExplain(true)  
> .execute()  
> .actionGet();

--  
You received this message because you are subscribed to the Google Groups "elasticsearch" group.  
To unsubscribe from this group and stop receiving emails from it, send an email to [elasticsearch+unsubscribe@googlegroups.com](mailto:elasticsearch+unsubscribe@googlegroups.com).  
For more options, visit [https://groups.google.com/groups/opt\_out](https://groups.google.com/groups/opt_out).

---

<div class="post-metadata">

**Author:** ![mukesh](https://avatars.discourse-cdn.com/v4/letter/m/aeb1de/32.png) [@mukesh](https://discuss.elastic.co/u/mukesh)\
**Post date:** [February 18, 2013, 5:02am UTC](https://discuss.elastic.co/t/want-to-search-on-multiple-fields/10762/5 "2013-02-18T05:02:57Z")

</div>

this is my Json:  
"\_type":"emls","\_source":  
{"ResumeHeadline":"System/Networkadmin with 3 yrs of Experience ",  
"LastEmployer":" 3i Infotech consultancyservices ",  
"Subject":"Fwd: [Naukri.com](http://Naukri.com) - SA:- September 2012, Linux System Administrator - Salary Best in Industry - Project Assistant, Homi Bhabha Centre for Science & Education, TIFR Mankhurd, Mumbai., 3.0 yrs, Navi Mumbai",  
"CurrentDesignation":null,  
"Recommendations":" Not Mentioned ",  
"LastDesignation":" Assistant Engineer ",  
"CurrentLocation":" NaviMumbai, Maharashtra, INDIA ",  
"Path":"E:\emls\output\laitkor@gmail.com.tarubairam\_21.doc","TotalExperience":null,  
"Name":null,"Lastmodifiedon":" 07-Feb-2013",  
"Landline":"91-- ",

Now using this code for filter search is any thing wrong ?

XContentBuilder indexSettings = null;  
Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "elasticsearch").build();  
Client client = new TransportClient(settings).addTransportAddress(new InetSocketTransportAddress("192.168.X.XX", 9300));  
client.admin().indices().prepareRefresh("resume\_index").execute().actionGet();  
FilterBuilders.andFilter(  
// FilterBuilders.prefixFilter("keyskil", "asp"),  
FilterBuilders.prefixFilter("CurrentLocation", "delhi")  
);  
AndFilterBuilder queryFilters = FilterBuilders.andFilter();  
// queryFilters.add(FilterBuilders.prefixFilter("keyskil", "asp"));  
queryFilters.add(FilterBuilders.prefixFilter("CurrentLocation", "n"));

```
   FilterBuilder aggFilter = FilterBuilders.andFilter(queryFilters); 
  QueryBuilder queryBuilder = QueryBuilders.filteredQuery(QueryBuilders.prefixQuery("CurrentLocation", "d"),aggFilter); 
	
	SearchResponse response = client.prepareSearch("resume_index")
	                             .setSearchType(SearchType.QUERY_AND_FETCH) 
	                             .setQuery(queryBuilder) 
                                .setFilter(aggFilter) 
	                            
									//.setQuery(QueryBuilders.termQuery("Name", "Mahi Singh"))
									//.setQuery(QueryBuilders.prefixQuery("CurrentLocation","d"))
                                  // .setQuery(QueryBuilders.boolQuery().must(termQuery("CurrentLocation", "delhi")))
                                    // .setQuery(QueryBuilders.prefixQuery("Name", "Mahi Singh"))
                                  // .setQuery(QueryBuilders.prefixQuery("CurrentLocation","d"))
                                  // .setQuery(QueryBuilders.boolQuery().must(termQuery("CurrentLocation","delhi")).must(termQuery("From","laitkor@gmail.com")))
									.setFrom(66)
									.setSize(100)
									.setExplain(true)
								
									.execute()
									.actionGet();
	
	
 	System.out.println(response.toString());

```

## find result:

```
               {

```

"took" : 16,  
"timed\_out" : false,  
"\_shards" : {  
"total" : 5,  
"successful" : 5,  
"failed" : 0  
},  
"hits" : {  
"total" : 0,  
"max\_score" : null,  
"hits" : []  
}  
}

---

<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 6, 2017, 2:51am UTC](https://discuss.elastic.co/t/want-to-search-on-multiple-fields/10762/6 "2017-07-06T02:51:03Z")

</div>


