Sunspot: как выполнить полнотекстовый запрос для нескольких полей с разными значениями?

Я хотел бы воспроизвести следующий необработанный запрос solr с sunspot

q=exact_term_text:foo OR term_textv:foo* OR alternate_text:bar*

, но я не могу понять, возможно ли и как это возможно, через стандартный интерфейс sunspot, поскольку кажется, что:

  1. метод fulltext , похоже, не принимает несколько аргументов text / search_fields
  2. Я не знаю, какой аргумент передать как первый для fulltext , как если бы я передал либо «foo» , либо «bar» , результаты не будут совпадать
  3. Если я передам пустой аргумент, я получу q = *: *
  4. фильтры области видимости (например, с (: term) .starting_with ('foo *') (как следует из названия) применяются как запросы фильтра и, таким образом, не принимают участие в подсчете очков .

Кажется возможным составить строку вручную (или, возможно, использовать adjust_solr_params ), но это кажется хакерским. Есть ли лучшее решение?

5
задан riffraff 16 July 2012 в 07:41
поделиться