Я использую поиск Sunspot Solr, который в большинстве случаев отлично работает для базового поиска. Предполагается, что он может обрабатывать кавычки вокруг фраз, поэтому поиск тестового примера
будет возвращать документы с тестом и случаем, тогда как поиск «тестовый пример»
должен возвращать документы с фразой test case.
Однако я ' Я рвал на себе волосы из-за этого, потому что кажется, что Rails удаляет все внешние кавычки из пользовательского ввода еще до того, как он попадет в поисковую систему. Таким образом, "тестовый пример"
возвращает те же результаты, что и тестовый пример
, но "" тестовый пример ""
или "тестовый пример"
( с начальными и конечными пробелами) действительно работает, в первом случае, потому что внешние кавычки удаляются, оставляя внутренние, а во втором случае потому, что эта проблема затрагивает только начальные и конечные кавычки.
По-видимому, это ошибка известная ошибка, а отмечена командой Rails как не исправляемая . Я действительно удивлен, как мало я могу найти об этом в Интернете, так как это кажется очень распространенной функциональностью.
Как люди это решают? Мне не кажется разумным решением попросить пользователей использовать двойные кавычки из-за этого, и я не особо хочу вносить свои собственные изменения в Rack.