У меня есть модель Artist с
def search_data
{
name: name,
description: description
}
end
Я создаю двух художников
Artist.create(name: "Da Vinci", description: "Tortuga")
Artist.create(name: "Donatello", description: "Tortoise")
Затем переиндексирую их
Artist.reindex
Выполните общий поиск
Artist.search("*").results
Возвращает
=> [#<Artist id: 295, name: "Donatello", description: "Tortuga", avatar: nil, cover: nil, created_at: "2018-10-25 13:43:21", updated_at: "2018-10-25 13:43:21">, #<Artist id: 296, name: "Da Vinci", description: "Tortuga", avatar: nil, cover: nil, created_at: "2018-10-25 13:43:52", updated_at: "2018-10-25 13:43:52">]
Итак, я делаю вывод, что художники правильно проиндексированы, я делаю поиск
Artist.search("D").results
Но он возвращает только
=> [#<Artist id: 296, name: "Da Vinci", description: "Tortuga", avatar: nil, cover: nil, created_at: "2018-10-25 13:43:52", updated_at: "2018-10-25 13:43:52">]
Единственный способ добраться до Донателло без поиска "*" - это буквально
Artist.search("Donatello").results
Возвращает
=> [#<Artist id: 295, name: "Donatello", description: "Tortuga", avatar: nil, cover: nil, created_at: "2018-10-25 13:43:21", updated_at: "2018-10-25 13:43:21">]
Чего мне не хватает?Заранее спасибо.
- UDAPTE -
Я хочу буквально выполнить этот запрос
search("*", page: page, per_page: per_page, where: { _or: [ { name: /.*#{query}.*/ }, { description: /.*#{query}.*/ } ] })