Hi Daniel,
the following topic might help (at least it did the trick for me using
german chararcters)
http://wiki.apache.org/solr/FAQ - Why don't International Characters Work?
So I wrote the following servlet (taken from Wiki/mailing list)
import org.apache.solr.servlet.SolrDispatchFilter;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import java.io.IOException;
/**
* A work around that the URL parameters are encoded using UTF-8 but no
character
* encoding is defined. So enforce UTF-8 to make it work with German
characters.
*/
public class CdpSolrDispatchFilter extends SolrDispatchFilter {
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
String encoding = request.getCharacterEncoding();
if (null == encoding) {
// Set your default encoding here
request.setCharacterEncoding("UTF-8");
} else {
request.setCharacterEncoding(encoding);
}
super.doFilter(request, response, chain);
}
}
Cheers,
Siegfried Goeschl
Daniel Löfquist wrote:
Hello,
We're building a webapplication that uses Solr for searching and I've
come upon a problem that I can't seem to get my head around.
We have a servlet that accepts input via XML-RPC and based on that input
constructs the correct URL to perform a search with the Solr-servlet.
I know that the call to Solr (the URL) from our servlet looks like this
(which is what it should look like):
http://myserver:8080/solrproducts/select/?q=all_SV:ljusblå+status:online&fl=id%2Cartno%2Ctitle_SV%2CtitleSort_SV%2Cdescription_SV%2C&sort=titleSort_SV+asc,id+asc&start=0&q.op=AND&rows=25
But Solr reports the input-fields (the GET-variables in the URL) as:
INFO: /select/
fl=id,artno,title_SV,titleSort_SV,description_SV,&sort=titleSort_SV+asc,id+asc&start=0&q=all_SV:ljusblå+status:online&q.op=AND&rows=25
which is all fine except where it says "ljusblå". Apparently Solr is
interpreting the UTF-8 string "ljusblå" as ISO-8859-1 and thus creates
this garbage that makes the search return 0 when it should in reality
return 3 hits.
All other searches that don't use special characters work 100% fine.
I'm new to Solr so I'm not sure what I'm doing wrong here. Can anybody
help me out and point me in the direction of a solution?
Sincerely,
Daniel Löfquist