Поиск юникода Sunspot работает локально, но не в производстве

У меня есть приложение, работающее с Sunspot Solr локально, без проблем поддерживающее юникод. Однако в производственной среде с Heroku и Websolr все запросы Unicode возвращают нулевые результаты. Я подтвердил поддержку Websolr, что могу напрямую запрашивать их систему Solr с юникодом, и все работает нормально. Однако, когда я делаю запрос из своего производственного приложения, они видят в журнале что-то вроде этого: q=أرسنا

Так что это не похоже на Websolr. Я также попытался запустить локальное приложение в производственном режиме (указав на Websolr), и как только я это сделаю, запросы снова не возвращают результатов!

Мне интересно, сталкивался ли кто-нибудь с подобной проблемой, и где я должен искать ответы? Я попытался установить уровень производственного журнала solr на INFO или более, чтобы увидеть, что отправляется в Solr, но по какой-то причине это также не отображается в журнале сервера.

Спасибо


person Bashar Abdullah    schedule 23.01.2012    source источник


Ответы (2)


Когда Sunspot переключился на использование HTTP POST для своих запросов, он (и его зависимость, RSolr), к сожалению, не указал кодировку для своего заголовка Content-type. Это приводит к тому, что Tomcat по умолчанию использует ISO-8859-1 в соответствии со спецификацией сервлета, что приводит к неправильному декодированию символов UTF-8.

Более поздняя версия RSolr, 1.0.7, исправила это, указав правильный заголовок типа содержимого с кодировкой UTF-8. Таким образом, пользователи Sunspot, увидевшие эту ошибку, должны убедиться, что их зависимость gem-пакета RSolr обновлена ​​до версии 1.0.7 или выше.

person Nick Zadrozny    schedule 25.02.2012

Я не уверен, но может быть по какой-то причине кажется, что когда вы делаете запрос, WebSolr может не отправлять, какой набор символов использовать, поэтому ваш сервер приложений (я не уверен, JBOSS или Tomcat) будет думать, что он должен использовать набор символов по умолчанию (который может быть ISO-8859-1). Я думаю, что это должно быть ошибкой с продуктом.

person Sandeep Nair    schedule 09.02.2012
comment
Кажется, это действительно проблема, поскольку Ник из Websolr прокомментировал мой тот же пост в группах Google github.com /mwmitchell/rsolr/pull/34 Однако у меня все еще нет решения - person Bashar Abdullah; 16.02.2012