Как я могу сфокусировать запрос Sunspot?
Моя проблема с этим фрагментом в том, что он возвращает целое число -1
что означает универсальный Message
это также используется в других аккаунтах.
def build_results
search = Sunspot.new_search(Message) do
any_of do
member.lists.map { |list| with :enterprise_list_id, list.search_id }
end
Как я могу добавить к этому утверждению, чтобы запросить все сообщения с -1
как search_id
но сфера его так, чтобы он принадлежал исключительно member.account
?
Я пытаюсь оценить это так:
searchable :include => :repliable do
integer :account_id do
repliable.try(:account_id)
end
а также..
def build_results
search = Sunspot.new_search(Message) do
with :account_id, member.account_id
Но это ничего не возвращает, хотя я точно знаю, что есть результаты поиска, которые должны быть возвращены, потому что они имеют общий доступ account_id
,
1 ответ
Решение
Если я правильно понял ваш вопрос, то вам просто нужно добавить эти утверждения в свой блок поиска сообщений.
searchable do
integer :some_search_ids, :multiple => true do
member.lists.map { |list| list.search_id} if member.present?
end
integer :member_account_id do
member.account_id if member.present?
end
end
затем,
def build_results
search = Sunspot.new_search(Message) do
with(:some_search_ids, some_list_search_id)
with(:member_account_id, some_member_account_id)
end
end