# Querying multiple fields at once

**URL:** <https://discuss.elastic.co/t/querying-multiple-fields-at-once/191616>\
**Category:** Elasticsearch\
**Created:** [July 22, 2019, 10:49am UTC](https://discuss.elastic.co/t/querying-multiple-fields-at-once/191616 "2019-07-22T10:49:14Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Champ](https://avatars.discourse-cdn.com/v4/letter/c/c6cbf5/32.png) [@Champ](https://discuss.elastic.co/u/Champ)\
**Post date:** [July 22, 2019, 10:49am UTC](https://discuss.elastic.co/t/querying-multiple-fields-at-once/191616/1 "2019-07-22T10:49:14Z")

</div>

I was just wondering if there is a way to query two fields at the same time.  
This is the query I'm using right now

setQuery(QueryBuilders.matchPhraseQuery("message", searchString)).get();

I would also like to add a rangeQuery to only search through the logs after a given date.  
Is there a way to run both at the same time ?

---

<div class="post-metadata">

**Author:** ![SenalChen](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/senalchen/32/51490_2.png) [@SenalChen](https://discuss.elastic.co/u/SenalChen)\
**Post date:** [July 22, 2019, 3:58pm UTC](https://discuss.elastic.co/t/querying-multiple-fields-at-once/191616/2 "2019-07-22T15:58:31Z")

</div>

I used QueryBuilders.termsQuery("message", searchString) it works.But maybe u need to be careful with analyzer.

---

<div class="post-metadata">

**Author:** ![Champ](https://avatars.discourse-cdn.com/v4/letter/c/c6cbf5/32.png) [@Champ](https://discuss.elastic.co/u/Champ)\
**Post date:** [July 24, 2019, 6:11am UTC](https://discuss.elastic.co/t/querying-multiple-fields-at-once/191616/3 "2019-07-24T06:11:29Z")

</div>

Ohh, Actually the code is working fine for quering a single field in the data. I was trying to find a way to query TWO different fields with different searchStrings in a format similar to the one posted below

setQuery(QueryBuilders.matchPhraseQuery("message", searchString)).get();

---

<div class="post-metadata">

**Author:** ![SenalChen](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/senalchen/32/51490_2.png) [@SenalChen](https://discuss.elastic.co/u/SenalChen)\
**Post date:** [July 24, 2019, 3:36pm UTC](https://discuss.elastic.co/t/querying-multiple-fields-at-once/191616/4 "2019-07-24T15:36:34Z")

</div>

Maybe you need boolean query and set two filters.

---

<div class="post-metadata">

**Author:** ![SenalChen](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/senalchen/32/51490_2.png) [@SenalChen](https://discuss.elastic.co/u/SenalChen)\
**Post date:** [July 24, 2019, 3:43pm UTC](https://discuss.elastic.co/t/querying-multiple-fields-at-once/191616/5 "2019-07-24T15:43:25Z")

</div>

if you want to range date, just do setPostFilter(rangeQuery);

---

<div class="post-metadata">

**Author:** ![Champ](https://avatars.discourse-cdn.com/v4/letter/c/c6cbf5/32.png) [@Champ](https://discuss.elastic.co/u/Champ)\
**Post date:** [July 26, 2019, 6:35am UTC](https://discuss.elastic.co/t/querying-multiple-fields-at-once/191616/6 "2019-07-26T06:35:38Z")

</div>

Thanks ... This was exactly what I was looking for

---

<div class="post-metadata">

**Author:** ![SenalChen](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/senalchen/32/51490_2.png) [@SenalChen](https://discuss.elastic.co/u/SenalChen)\
**Post date:** [July 26, 2019, 3:41pm UTC](https://discuss.elastic.co/t/querying-multiple-fields-at-once/191616/7 "2019-07-26T15:41:53Z")

</div>

😀

---

<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 23, 2019, 3:41pm UTC](https://discuss.elastic.co/t/querying-multiple-fields-at-once/191616/8 "2019-08-23T15:41:57Z")

</div>

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