Я использую камень эластичного поиска рельсов в моем приложении рельсов.Все настроено, но у меня возникают проблемы, когда я ищу два слова с пробелом между ними.Вот мой код:
SEARCH_FIELDS = %w"name email"
attribute :text, type: String, default: ''
response = MyModelName.search([query, filter, sort].compact.reduce(:merge)).page(page).per(per_page)
def query
query = {}.tap do |q|
q[:query_string] = {query: text, default_operator: 'AND', fields: SEARCH_FIELDS, allow_leading_wildcard: true}
end
return {query: query}
end
def filter
filters = []
filters << {term: {user_id: user_id}}
filters << {term: {hide: (hide.nil? ? false : hide)}}
return {filter: {and: filters}}
end
Если я ищу первые инициалы имени вроде ('John'), которое работает нормально, но имя с пробелом ('John doe') не найдено.