2013-10-10 1 views
0

Я использую ThinkingSphinx для простого поиска, который проходит через модель книги. мой book_indexes.rb выглядит следующим образом:Получение результатов поиска не основано на целочисленном индексированном значении

ThinkingSphinx::Index.define :book, with: :active_record do 
    indexes title 
    indexes author 
    indexes publishing_date 
    indexes isbn 
end 

и контроллер действий выглядит следующим образом

def index 
    @books = Book.search(params[:search]) 
    end 

до сих пор все работает, как предполагается, когда я типа «библия» возвращает книги под названием «Библия» , Но можно ли получить результат поиска, который не основан, например, на целом заголовке? В более простых словах я хотел бы получить «библию» всякий раз, когда я ищу «bib» или «b».

EDIT

мой thinking_sphinx.yml теперь:

development: 
    enable_star: true 
    min_infix_len: 1 
    min_prefix_len: 1 

и действия контроллера:

@books = Book.search("*#{params[:search]}*") 

, но он все еще работает точно так же, только без каких-либо запросов, только после загрузки страница, @books is nil

+0

Вы запускаете 'грабли ц: index' или' грабли ц: rebuild'? – claptimes

+0

nope, попробуем в минуту – Leo

+0

да, это то, что мне нужно было сделать, я также удалил min_infix_len: 1 из think_sphinx.yml, потому что он поднял ошибку, говоря, что префиксы и infifes не могут быть включены. thx – Leo

ответ

1

Вы ищете недвижимость min_infix_len. Вы можете установить параметры конфигурации thinking_sphinx.yml следующим образом:

development: 
    #.... truncated .... 
    enable_star: true # Allow wildcard searching 
    min_infix_len: 3 # Indexes on values starting at 3 letters like "bib" 
0

Мышление Sphinx позволяет использовать подстановочные знаки поэтому при поиске вместо этого:

@books = Book.search("*#{params[:search]}*") 

Он также будет работать, если вы не используете все слово!

+1

Для этого вам нужно настроить enable_star и min_prefix_len, но это не сложно. Оба параметра указаны на этой странице документации: http://pat.github.io/thinking-sphinx/advanced_config.html – pat

+0

Я обновил свой вопрос, не могли бы вы взглянуть? – Leo