Da un po’ di tempo sto sperimentando il motore di ricerca Solr e devo ammettere che le sensazioni sono (per ora) buone; ottime prestazioni, interfaccia HTTP, tonnellate di opzioni, faccette, boost dei risultati a query time, stemmer italiano, supporto Unicode nativo, eccetera.

Appena lo scarichi Solr è praticamente già pronto all’uso; è una webapp Java e insieme alla distribuzione ti viene dato anche Jetty giusto per poter scrivere “start.sh” ed essere online (beh, quasi…).

Quando le cose si fanno serie (leggi: andare in produzione), è sicuramente meglio passare a Tomcat.

Per farla breve (tornerò sull’argomento quando parlerò dell’integrazione tra Solr e Drupal che sto seguendo), oggi mi sono accorto che fallivano miseramente tutte le ricerche che contenevano caratteri àccèntàtì. Quando succede una cosa del genere, ogni programmatore italiano alza gli occhi al cielo e sospira (e/o dice cose non ripetibili in questa sede).

Scopro finalmente che il problema non è di Solr. Si verifica perchè le query in forma di URI che vengono mandate a Solr, non sono codificate UTF-8. Il simpaticone di Tomcat, di default, non codifica UTF-8 le URI.

E’ stato sufficiente aprire il server.xml di Tomcat e aggiungere al connettore principale l’attributo URIEncoding=”UTF-8″ così che il connector apparirà così:

<Connector port="8080" URIEncoding="UTF-8" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443" />

Fatto poi ripartire Tomcat è andato tutto a posto.

Print