On 8/4/2019 10:15 PM, dinesh naik wrote:
My question is regarding the custom query being used. Here i am querying
for field _root_ which is available in all of my cluster and defined as a
string field. The result for _root_:abc might not get me any match as
well(i am ok with not finding any matches, the query should not be taking
10-15 seconds for getting the response).

Typically the *:* query is the fastest option. It is special syntax that means "all documents" and it usually executes very quickly. It will be faster than querying for a value in a specific field, which is what you have defined currently.

I will typically add a "rows" parameter to the ping handler with a value of 1, so Solr will not be retrieving a large amount of data. If you are running Solr in cloud mode, you should experiment with setting the distrib parameter to false, which will hopefully limit the query to the receiving node only.

Erick has already mentioned GC pauses as a potential problem. With a 10-15 second response time, I think that has high potential to be the underlying cause.

The response you included at the beginning of the thread indicates there are 1.3 billion documents, which is going to require a fair amount of heap memory. If seeing such long ping times with a *:* query is something that happens frequently, your heap may be too small, which will cause frequent full garbage collections.

The very low autoSoftCommit time can contribute to system load. I think it's very likely, especially with such a large index, that in many cases those automatic commits are taking far longer than 5 seconds to complete. If that's the case, you're not achieving a 5 second visibility interval and you are putting a lot of load on Solr, so I would consider increasing it.

Thanks,
Shawn

Reply via email to