Так что я не думаю, что есть разница между 2-м и 3-м (поправьте меня, если я ошибаюсь!), Однако, я уверен в разнице между 1-м и 2-м
indexes
используется для указания поля - согласно веб-сайту Thinking Sphinx:
Поля - это контент для ваших поисковых запросов. Поэтому, если вы хотите, чтобы слова были привязаны к определенному документу, вам лучше убедиться, что они находятся в поле вашего индекса. Это только строковые данные - в ваших полях могут быть числа и даты, и тому подобное, но Sphinx будет рассматривать их только как строки, и ничего больше.
has
используется для указания атрибута - опять же, согласно веб-сайту Thinking Sphinx:
Атрибуты используются для сортировки, фильтрации и группировки результатов поиска. Однако их значения не привлекают внимания Sphinx для поисковых терминов, и они ограничены следующими типами данных: целыми числами, числами с плавающей запятой, датами (как временными метками Unix - и, следовательно, целыми числами в любом случае), логическими значениями и строками. Обратите внимание, что строковые атрибуты преобразуются в порядковые целые числа, что особенно полезно для сортировки, но не намного.