I tried the QueryStringQuery and BoolQuery and I've got really strange thing with the performance.
When I pass the URI query ES is able to serve 1200 requests per second with disabled http cache and the CPU level on 45-50%
When I pass BoolQuery the CPU level is under 100% on when the load reaches 100 requests per second only, however it keeps the response time good.
QueryStringQuery is even worse. 3-4 requests per second 100% utilization and the huge response time.
What can impact the performance so much when the transport client is used?
I understand that there can be a lot of reasons of high CPU consuming, however the main question is why uri search works fine with the same settings?
I tested the DSL queries by http before and I had horrible results, hot_threads output said that query parsing consumed a lot of resources, thus I started to use uri search for initial tests.
I assume that ES transport serializes/deserializes query objects to something different from json strings, am I right?
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.