(более полное объяснение вашего собственного самостоятельного наблюдения.)
Относительно вашей настройки:
searchable do
string :first_name
string :last_name
string :name
string :email
time :created_at
end
Строка в Solr предназначена для точных совпадений. Он не был предварительно обработан или маркирован, как текстовый столбец. Эти литеральные совпадения используются для фильтрации («где имя категории равно« Продажа »»), огранки, сортировки и т. Д.
Скорее всего, вам нужно text
полей. Текстовые поля маркируются с помощью Standard Tokenizer , в нижнем регистре - с помощью LowerCase Filter , а их точки и апострофы удаляются с помощью Standard Filter среди многих других возможных вариантов.
Когда люди думают о функциональности полнотекстового поиска Solr, они думают о том, как он обрабатывает text
полей.
Кроме того, метод поиска Sunspot keywords
по умолчанию выполняет поиск по всем вашим текстовым полям, что объясняет, почему вы не получаете результаты, когда добавляете keywords
- в ваших документах нет текстовых полей для поиска.
Как вы заметили в своем самостоятельном наблюдении, вам нужно переключиться на text
поля, чтобы получить ожидаемые результаты.