3

내 응용 프로그램을 Sunspot Solr과 함께 로컬로 사용하고 유니 코드 을 지원하는데 문제가 없습니다. 그러나 Heroku 및 Websolr을 사용하면 모든 유니 코드 쿼리는 0 개의 결과를 반환합니다. Websolr 지원으로 확인했습니다. Solic 시스템에 유니 코드 으로 직접 쿼리 할 수 ​​있으며 정상적으로 작동합니다. 그러나 내 프로덕션 응용 프로그램에서 쿼리 할 때 로그에 다음과 같은 내용이 나타났습니다. q = Ø ± س٠† ØSunspot 유니 코드 검색은 로컬에서는 작동하지만 프로덕션에서는 작동하지 않습니다.

Websolr과 관련이없는 것 같습니다. 또한 로컬 모드 (Websolr을 가리키는) 프로덕션 모드로 실행 해 보았습니다. 을 실행하면 쿼리 결과가 다시 표시되지 않습니다.

누군가 비슷한 문제에 직면했는지 궁금합니다. 무엇을해야합니까? 답변을 찾으십니까? 솔 러 프로덕션 로그 수준을 INFO 이상으로 설정하여 Solr로 전송되는 내용을 확인하려고 시도했지만 어떤 이유로 서버 로그에도 표시되지 않는 이 표시됩니다.

감사

답변

0

Sunspot이 요청에 대해 HTTP POST를 사용하도록 전환했을 때 불행히도 Content-Type 헤더에 charset을 지정하지 않았습니다. 이로 인해 서블릿 스펙에 따라 Tomcat이 ISO-8859-1로 기본 설정되어 UTF-8 문자의 잘못된 디코딩이 발생합니다.

최신 버전의 RSolr 1.0.7은 UTF-8 charset이있는 올바른 내용 유형 헤더를 지정하여이 문제를 해결했습니다. 따라서이 오류를 보는 Sunspot 사용자는 자신의 RSolr gem 종속성이 1.0.7 이상으로 업데이트되었는지 확인해야합니다.

0

나는 JBOSS 여부 때문에 응용 프로그램 서버 (I가 아니다 확실히, 잘 모르겠지만, 당신이 요청 WebSolr을 사용하도록 설정하는 문자가 전송되지 않을 수 있습니다 만드는 동안 어떤 이유로 보인다 될 수있다 또는 Tomcat)은 기본 문자 세트 (ISO-8859-1이 될 수 있음)를 사용해야한다고 생각합니다. 제품에 버그가 있다고 생각합니다.

+0

이 Websolr은 Google 그룹 내 동일 게시물에 댓글로 닉 등의 문제로 보인다 https://github.com/mwmitchell/rsolr/pull/34 내가 그러나 해결책없이 여전히 해요 –

관련 문제