Поиск по ключевым словам с несколькими терминами

Я хотел бы написать что-то вроде этого:

 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 будет использовать настройку по умолчанию, которая будет возвращать только "полные" совпадения (все найденные фразы).

Другие вопросы по тегам