# QueryStringQuery vs Boolean Query performance difference

**URL:** <https://discuss.elastic.co/t/querystringquery-vs-boolean-query-performance-difference/59253>\
**Category:** Elasticsearch\
**Created:** [August 29, 2016, 11:47pm UTC](https://discuss.elastic.co/t/querystringquery-vs-boolean-query-performance-difference/59253 "2016-08-29T23:47:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![EuclideanSearch](https://avatars.discourse-cdn.com/v4/letter/e/c77e96/32.png) [@EuclideanSearch](https://discuss.elastic.co/u/EuclideanSearch)\
**Post date:** [August 29, 2016, 11:47pm UTC](https://discuss.elastic.co/t/querystringquery-vs-boolean-query-performance-difference/59253/1 "2016-08-29T23:47:55Z")

</div>

Hi,

I am getting very different performance for the following two queries  
Query1: using QueryStringQuery  
{  
"query": {  
"query\_string": {  
"query": "\*abc\* \*def\* ",  
"fields": [  
"field1",  
"field2"  
],  
"default\_operator": "and",  
"allow\_leading\_wildcard": true,  
"lowercase\_expanded\_terms": false,  
"analyze\_wildcard": true  
}  
}  
}

Query2: Using bools:  
{  
"query": {  
"bool": {  
"must": [  
{  
"bool": {  
"should": [  
{  
"wildcard": {  
"field1": "\*abc\*"  
}  
},  
{  
"wildcard": {  
"field3": "\*abc\*"  
}  
}  
]  
}  
},  
{  
"bool": {  
"should": [  
{  
"wildcard": {  
"field1": "\*def\*"  
}  
},  
{  
"wildcard": {  
"field3": "\*def\*"  
}  
}  
]  
}  
}  
]  
}  
}  
}

Their explain plans (via /events/mylog/\_validate/query?explain are similar:  
Query1 (query string query):  
"explanation": "filtered(+(field1:\*abc\* | field2:\*abc\*) +(field1:\*def\* | field2:\*def\*))-\>cache(\_type:mylog)"

Query2 (boolean):  
"explanation": "filtered(+(field1:\*abc\* field3:\*abc\*) +(field1:\*def\* field3:\*def\*))-\>cache(\_type:systemlog)"

The only difference is the '|' in the first query plan. Does anyone know what that stands for? And why I might be seeing the different performance?

---

<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, 10:23pm UTC](https://discuss.elastic.co/t/querystringquery-vs-boolean-query-performance-difference/59253/2 "2017-07-05T22:23:56Z")

</div>


