: I've tested a query using solr admin web interface and it works fine. : But when I'm trying to execute the same search using solrj, it doesn't : include Stats information. : I've figured out that it's because my query is encoded.
I don't think you are understading how to use SolrJ andthe SolrQuery object.... : Original query is like q=eventTimestamp:[2013-06-01T12:00:00.000Z TO : 2013-06-30T11:59:59.999Z]&stats=true&stats.field=numberOfBytes&stats.facet=eventType : The query in java is like : q=eventTimestamp%3A%5B2013-06-01T12%3A00%3A00.000Z+TO+2013-06-30T11%3A59%3A59.999Z%5D%26stats%3Dtrue%26stats.field%3DnumberOfBytes%26stats.facet%3DeventType ... : SolrQuery solrQuery = new SolrQuery(); : solrQuery.setQuery(queryBuilder.toString()); : QueryResponse query = getSolrServer().query(solrQuery); it looks like you are passing the setQuery method an entire URL encoded set of params from a request you made in your browser. the setQuery method is syntactic sugar for for specifying just the "q" param containing the query string, and it should not alreayd be escaped (ie: "eventTimestamp:[2013-06-01T12:00:00.000Z TO 2013-06-30T11:59:59.999Z]"). Other methods exist on the SolrQuery object to provide syntactic sugar for other things (ie: specifying facet fields, enabling highlighting, etc...) If you want to provide a list of params using explicit names (q, stats, stats,field, etc...) you can ignore the helper methods on SolrQuery and just direct use the low level methods it inherits from ModifibleSolrParams like "setParam" ... SolrQuery query = new SolrQuery(); query.setParam("q", "eventTimestamp:[2013-06-01T12:00:00.000Z TO 2013-06-30T11:59:59.999Z]"); query.setParam("stats", true); query.setParam("stats.field", "numberOfBytes","eventType"); QueryResponse response = getSolrServer().query(query); -Hoss