Звучит так, как вы хотите поиск по шаблону . Либо добавьте это в файл config/sphinx.yml
, либо создайте его, если у вас его еще нет:
development:
enable_star: 1
min_prefix_len: 1
# repeat for other environments
Или вы можете поместить его в определенный индекс - поскольку настройки инфикса / префикса значительно увеличивают размер ваших индексов:
define_index do
# ...
set_property :enable_star => 1
set_property :min_prefix_len => 1
end
А затем запустите rake ts:rebuild
, чтобы изменения были известны Sphinx и обработаны в индексах, а затем вы можете выполнить поиск следующим образом:
Student.search 'a*'
# or
Student.search :conditions => {:name => 'a*'}
И если вы используете min_infix_len вместо min_prefix_len, вы также можете сопоставить в словах - то есть поставить звезду с любой стороны:
Student.search '*a*'
Наконец - если вы всегда хотите, чтобы в ваших запросах были символы подстановки на каждом конце каждого термина, используйте :star => true
в своих запросах:
Student.search 'a b c', :star => true
# is the same as
Student.search '*a* *b* *c*'
Надеюсь, это поможет вам получить результат, который вы ищете:)