В моем приложении Rails я использую Sunspot для индексирования нескольких разных моделей. Затем у меня есть глобальная форма поиска, которая возвращает смешанные результаты. Это нормально работает:Rails + Sunspot: поиск нескольких моделей, но только определенные поля на одной из моделей?
Sunspot.search(Person, EmailAddress, PhoneNumber, PhysicalAddress) do
fulltext params[:q]
paginate :per_page => 10
end
Я хотел бы добавить дополнительную модель, скажем, проект в этот поиск. Модель проекта имеет совсем немного, индексируемые:
class Project < ActiveRecord::Base
searchable do
string :category do
category.name.downcase if category = self.category
end
string :client do
client.name.downcase if client = self.client
end
string :status
text :tracking_number
text :description
integer :category_id, :references => Category
integer :client_id, :references => Client
integer :tag_ids, :multiple => true, :references => Tag
time :created_at, :trie => true
time :updated_at, :trie => true
time :received_at, :trie => true
time :completed_at, :trie => true
end
end
Как я могу изменить мой оригинальный Sunspot.search
вызов, чтобы добавить поиск записей проекта по просто tracking_number
полю и неdescription
поля?
Спасибо за ответ. Да, я должен, вероятно, использовать метод «text». Тем не менее, я имел в виду вопрос сосредоточиться на том, как ограничить мой поиск только одним полем данной модели при выполнении поиска по нескольким образцам. Я уточню вопрос, чтобы быть более точным. – robertwbradford
Я сделал другой ответ/решение – Sebastien
, но как отобразить его в поле зрения? – brabertaser19