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



Reply via email to