Разница между методами индексации Thinking Sphinx - PullRequest
3 голосов
/ 15 января 2011

Хотите знать, в чем разница между ними:

indexes shop.created_at, :as =>created_at
has shop(:created_at), :as => :created_at
has shop.created_at, :as => :created_at

Спасибо.

1 Ответ

7 голосов
/ 15 января 2011

Так что я не думаю, что есть разница между 2-м и 3-м (поправьте меня, если я ошибаюсь!), Однако, я уверен в разнице между 1-м и 2-м

indexes используется для указания поля - согласно веб-сайту Thinking Sphinx:

Поля - это контент для ваших поисковых запросов. Поэтому, если вы хотите, чтобы слова были привязаны к определенному документу, вам лучше убедиться, что они находятся в поле вашего индекса. Это только строковые данные - в ваших полях могут быть числа и даты, и тому подобное, но Sphinx будет рассматривать их только как строки, и ничего больше.

has используется для указания атрибута - опять же, согласно веб-сайту Thinking Sphinx:

Атрибуты используются для сортировки, фильтрации и группировки результатов поиска. Однако их значения не привлекают внимания Sphinx для поисковых терминов, и они ограничены следующими типами данных: целыми числами, числами с плавающей запятой, датами (как временными метками Unix - и, следовательно, целыми числами в любом случае), логическими значениями и строками. Обратите внимание, что строковые атрибуты преобразуются в порядковые целые числа, что особенно полезно для сортировки, но не намного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...