Поиск по ключевым словам с несколькими терминами
Я хотел бы написать что-то вроде этого:
keywords ['apple', 'peach'], :fields => [:fruits]
Если у меня есть два разных случая, когда у одного есть "яблоко", а у другого - "персик", я хочу, чтобы оба они были возвращены в результатах.
Я пробовал синтаксис, который я упомянул выше, но я получаю совпадение только для первого термина ("яблоко").
Солнечное пятно даже поддерживает это? Я не смог найти, что это делает, но это не значит, что я что-то не пропустил.
1 ответ
Допустим, у вас есть два экземпляра вашей модели, один с name
яблоко, второе с name
равный персик и третий с названием "яблочный персик". Если вы хотите получить любой из них, вы должны сделать что-то похожее на следующее:
Product.search do
minimum_match 1
keywords 'apple peach' # btw, fulltext is an alias to keywords
end
Теперь вы получите все три результата (по крайней мере, вы должны получить), критическая часть minimum_match
без этого Sunspot будет использовать настройку по умолчанию, которая будет возвращать только "полные" совпадения (все найденные фразы).