Hello,
I am using Dovecot 2.2.19 with the solr backend for full text search and experience the following issue.
When I issue a search that includes characters that are part of lucene's query syntax (e.g. the double quote character), dovecot does not escape the special characters and issues a request with invalid syntax to the solr server.
For example, I search for foo"bar, then my IMAP client (roundcube) sends the following to dovecot:
A0003 UID THREAD REFS US-ASCII ALL UNDELETED BODY "foo\"bar"
Dovecot in turn uses the following request URI to query SOLR:
"GET /solr/select?fl=uid,score&rows=113739&sort=uid+asc&q=body:%22foo%22bar%22&fq=%2Bbox:4d86808c56d44282b35cea8700dda537+%2Buser:%22myuser%22 HTTP/1.1" 400 994
Solr responds with error 400 and the following body: type Status report message null description The request sent by the client was syntactically incorrect.
This is because the " character in foo"bar is not quoted in the solr request. When I adapt the request to quote the " character solr succeeds with the expected result:
"GET /solr/select?fl=uid,score&rows=113739&sort=uid+asc&q=body:%22foo%5C%22bar%22&fq=%2Bbox:4d86808c56d44282b35cea8700dda537+%2Buser:%22myuser%22 HTTP/1.1" 200 535
A fix for this would be highly appreciated.
Cheers, Michael