Сведения о вопросе

MAT

07:28, 13th August, 2020

Теги

Sphinx    

Sphinx: результат поиска по слову?

Просмотров: 362   Ответов: 4

Собственно, начал разбираться со Сфинксом. Поставил, сконфигурировал, построил индекс. Произвёл поиск («найти->слово»).

И вот что мне не совсем понятно- может ли Sphinx в результатах поиска отдавать все поля?

Скажем я устанавливаю
sql_query = SELECT id,name,surname FROM test;


И ищу по части слова «Вас». Как мне получить кроме id ещё name и surname? Логика подсказывает, что если я могу найти всех «Вас»<ь>, то индекс хранит и name и surname, так зачем мне лишний раз спрашивать БД о их именах по ид, если я могу получить их у sphinx. Непонятно.


PS: Допускаю, что всё очень просто, но беглый поиск по документации не наталкнул меня на светлые мысли.



  Сведения об ответе

DINO

05:44, 6th August, 2020

По-умолчанию в сфинксе fulltext-поля хранить и получать не возможно (потому что они просто нигде не хранятся в виде полного значения, так устроены индексы сфинкса)

В 1.10-beta появилась возможность хранить строковые аттрибуты (и получать их в результатах выборки).

Если вы хотите использовать строковый аттрибут для fulltext поиска то его необходимо описать как sql_field_string
Максимальный размер значения для него — 4 мегабайта

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


  Сведения об ответе

DAAA

23:48, 14th August, 2020

Видимо, Вы изначально не поняли как он работает. Возвращаются id документов (primary key) в порядке, который был задан при поиске (сортировка, релевантость итп), потом по этим id вытаскиваются остальные данные, а чтобы не нарушить порядок надо применить в запросе ORDER BY FIELD


  Сведения об ответе

ЯЯ__4

06:14, 1st August, 2020

Только из консоли, иначе отдает только id-поля. Зная id проблем с нахождением доп. полей обычно не возникает


  Сведения об ответе

PROGA

22:57, 19th August, 2020

В 1.10-beta, похоже, появилась возможность хранить строки (раньше были только числа и т.п.):
sphinxsearch.com/docs/manual-1.10.html#conf-sql-attr-string
sphinxsearch.com/docs/manual-1.10.html#conf-sql-field-string


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться