Некоторые вопросы, связанные с индексами SphinxSE и RT - PullRequest
1 голос
/ 10 февраля 2011

Я подумываю использовать поиск Sphinx в одном из моих проектов, поэтому у меня есть несколько вопросов, связанных с ним.

  1. При использовании индекса SphinxSE и RT каждый UPDATE или INSERT в таблице SphinxSE будет обновлять индекс, верно? Не нужно вызывать индексатор или еще что-нибудь?
  2. Могу ли я выполнить поиск по тегам (пользователь ввел ключевые слова для документа) и по контенту и дать больше релевантности соответствию тегов? И если это возможно, как мне реализовать поиск по тегам (теперь у меня они есть в отдельных таблицах, например, в перевернутом индексе)
  3. Для атрибутов Fillter лучше поместить их дубликаты в таблицу SphinxSE или Fillter, используя mysql из обычной таблицы документов, которую я имею?

Заранее спасибо!

1 Ответ

3 голосов
/ 13 февраля 2011

Хорошо, я наконец-то понимаю, как все работает со штукой сфинкса.

  1. Вы не можете ВСТАВИТЬ или ОБНОВИТЬ непосредственно таблицу SphinxSE.Вместо этого вы используете INSERT / REPLACE при подключении к SphinxQL (непосредственно к демону sphinx).
  2. С 1.10 вы можете добавить несколько полных текстовых полей для поиска.Я добавил заголовок, теги и контент.И запрос, чтобы придать больший вес заголовку, затем тегам и содержимому, выглядит следующим образом: SELECT SQL_NO_CACHE * FROM sphinx_docs WHERE query = 'a lot of keywords;weights=3,2,1;'; Я использую SQL_NO_CACHE, чтобы сказать MySQL не кэшировать результат этого, потому что при следующих вызовах я не могу получитьколичество строк, возвращаемых из sphinx (SHOW STATUS LIKE 'sphinx_total_found')

  3. Лучше позволить sphinx выполнять всю сортировку, заполнение и использовать mysql только для того, чтобы присоединиться к таблице, из которой вам нужно больше информации.

Кроме того, я должен сказать, что много раз пытался добавить плагин sphinxse в mysql безуспешно (бесконечные часы ожидания), поэтому я переключился на MariaDB 5.2.4, который включает в себя механизм хранения SphinxSE..

...