Re: fts_solr does not quote lucene's special characters

2015-11-27 Thread Timo Sirainen
On 01 Nov 2015, at 19:03, Michael Stilkerich  wrote:
> 
> 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.

http://hg.dovecot.org/dovecot-2.2/rev/9d5c59d98857 should help.


fts_solr does not quote lucene's special characters

2015-11-01 Thread Michael Stilkerich

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=113739=uid+asc=body:%22foo%22bar%22=%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=113739=uid+asc=body:%22foo%5C%22bar%22=%2Bbox:4d86808c56d44282b35cea8700dda537+%2Buser:%22myuser%22 
HTTP/1.1" 200 535


A fix for this would be highly appreciated.

Cheers,
  Michael