Ребят, нужно сделать поиск по сайту. Установил сфинкс, настроил конфиги. Вопрос. Вот вводит человек слово "тест" и нужно чтобы он искал по всей базе, а не по конкретному индексу. Как это сделать? Или можно объединить индексы?
Конкретно интересует для: https://github.com/yiisoft/yii2-sphinx# ... -providers
Спасибо!
Вопрос по Sphinx
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Вопрос по Sphinx
Yii2!
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Вопрос по Sphinx
Подозреваю, что можно объединить индексы и поиск тогда будет идти по всем сразу. Но как к провайдеру подключить?
А если все индексы объединить в один, такое можно?
Разобрался, можно в секцию source указать несколько индексов.
А если все индексы объединить в один, такое можно?
Разобрался, можно в секцию source указать несколько индексов.
Yii2!
Re: Вопрос по Sphinx
Как? можно ссылку на доки?vitalik1183 писал(а): ↑2014.12.25, 14:47 Разобрался, можно в секцию source указать несколько индексов.
- vitalik1183
- Сообщения: 1675
- Зарегистрирован: 2014.07.01, 08:42
Re: Вопрос по Sphinx
Код: Выделить всё
source medical
{
# Параметры подключения к БД
type = mysql
sql_host = localhost
sql_user = user
sql_pass = pass
sql_db = db
sql_port = 3306
# Установим кодировку для работы с БД
sql_query_pre = SET NAMES utf8
sql_query_pre = SET CHARACTER SET utf8
# Время простоя (sleep)
sql_ranged_throttle = 0
sql_field_string = name
sql_field_string = anons
sql_field_string = text
sql_attr_string = alias
sql_attr_string = thumb
sql_attr_string = created_at
sql_attr_string = module
}
source medical_disease : medical
{
# Запрос выборки данных для индексации
sql_query = SELECT id, name, anons, text, alias, thumb, created_at, 'diseases' AS module FROM disease WHERE active = "1" AND published_at <= CURRENT_TIMESTAMP
}
source medical_medication : medical
{
# Запрос выборки данных для индексации
sql_query = SELECT id, name, anons, text, alias, thumb, created_at, 'medications' AS module FROM drug WHERE active = "1" AND published_at <= CURRENT_TIMESTAMP
}
source medical_symptoms : medical
{
# Запрос выборки данных для индексации
sql_query = SELECT id, name, anons, text, alias, thumb, created_at, 'symptoms' AS module FROM symptom WHERE active = "1" AND published_at <= CURRENT_TIMESTAMP
}
source medical_news : medical
{
# Запрос выборки данных для индексации
sql_query = SELECT id, name, anons, text, alias, thumb, created_at, 'news' AS module FROM news WHERE active = "1" AND published_at <= CURRENT_TIMESTAMP
}
index medical_search
{
# Источники
source = medical_disease
source = medical_medication
source = medical_symptoms
source = medical_news
path = /var/lib/sphinx/medical_search
docinfo = extern
mlock = 0
# Использование английского и русского стемминга
morphology = stem_en, stem_ru
# Минимальная длина индексируемого слова
min_word_len = 2
# Таблица символов
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
# Минимальная длина инфикса (префикс в том числе)
min_infix_len = 2
# Позволяет на ряду с морфологически нормализованной формой хранить и оригинальное слово в индексе
index_exact_words = 1
}
Yii2!