Как оценивается / интерпретируется запрос sphinxql? - PullRequest
1 голос
/ 04 октября 2011

Предположим, у меня есть индекс сфинкса с именем "worldcities" со следующими полями / атрибутами:

country_id # int атрибут

city # текстовое поле

accent_city #текстовое поле

и я запускаю следующий запрос sphinxql:

SELECT * FROM worldcities WHERE country_id = 16 AND MATCH((@(city,accent_city) "New Yor*"))

Как sphinx оценивает запрос ?: Сначала он просматривает все записи, а затем фильтрует результаты по countr_id: "дать мне все результаты, которые начинаются с 'New Yor', и отфильтровать их по country_id "?

Или же сначала отфильтровать по идентификатору страны и выполнить поиск по результатам:" дать мне все результаты, имеющие countr_id= 16, тогда поищите в этих "?

Надеюсь, я все прояснил

1 Ответ

3 голосов
/ 04 октября 2011

"дайте мне все результаты, которые начинаются с 'New Yor', и отфильтруйте их по country_id."

Сначала выполняются полнотекстовые запросы.Затем фильтры исключают необязательные совпадения.

Кстати, в вашем запросе отсутствуют некоторые кавычки, должно быть

MATCH('@(city,accent_city) "New Yor*"')

Функция соответствия принимает строку.

...