Проблемы со скоростью выполнения запросов Sphinx
Здравствуйте, у меня есть вопрос по скорости выполнения запросов Sphinx, прошу помочь неопытному с решением данной проблемы.
Есть созданный RT индекс в котором находятся ~1 500 000 товаров.
Sphinx используется не только для полнотекстового поиска но и для фильтрации и сортировки
товаров в каталоге, также с его помощью реализована зависимость фильтров и подсчет
количества товаров по определенным характеристикам фильтрации.
Проблема состоит в том что запросы отрабатывают довольно долго(запросы и время выполнения
приведу ниже), хочу понять в чем дело, может я что-то упустил или в конфиге напортачил
так как со Sphinx начал работать недавно.
Sphinx.conf:
Примеры запросов:
Пример №1 Время выполнения: 0.378
Пример №1 Время выполнения: 0.642
Пример №1 Время выполнения: 0.677
Есть созданный RT индекс в котором находятся ~1 500 000 товаров.
Sphinx используется не только для полнотекстового поиска но и для фильтрации и сортировки
товаров в каталоге, также с его помощью реализована зависимость фильтров и подсчет
количества товаров по определенным характеристикам фильтрации.
Проблема состоит в том что запросы отрабатывают довольно долго(запросы и время выполнения
приведу ниже), хочу понять в чем дело, может я что-то упустил или в конфиге напортачил
так как со Sphinx начал работать недавно.
Sphinx.conf:
index rt_index_name { type = rt path = /var/data/index_name docinfo = extern morphology = stem_enru min_word_len = 3 html_strip = 0 charset_type = utf-8 enable_star = 1 rt_mem_limit = 128M rt_field = product_title rt_field = product_type rt_attr_uint = product_nid rt_attr_uint = product_status rt_attr_uint = product_promote rt_attr_bigint = product_available rt_attr_uint = product_shop_weight rt_attr_uint = product_price rt_attr_uint = product_discount rt_attr_uint = product_brand rt_attr_uint = product_shop rt_attr_uint = product_grade rt_attr_multi = product_category rt_attr_float = product_rating rt_attr_float = product_rating_actual rt_attr_timestamp = product_created rt_attr_bigint = product_moderation_category rt_attr_bigint = product_moderation_status rt_attr_bigint = product_moderation_suspect } searchd { listen = 127.0.0.1:2413:mysql41 listen = 127.0.0.1:2414 log = /var/log/sphinx/searchd.log query_log = /var/log/sphinx/query.log pid_file = /var/run/sphinx/searchd.pid read_timeout = 1 max_matches = 10000 max_children = 30 workers = threads compat_sphinxql_magics= 0 dist_threads = 8 }
Примеры запросов:
Пример №1 Время выполнения: 0.378
$sphinx = new SphinxClient(); $sphinx->SetLimits(0, 100); $sphinx->SetFilter('product_category', array(32903)); $sphinx->SetSortMode(SPH_SORT_EXTENDED, 'product_available DESC, product_grade ASC, product_rating_actual DESC, product_nid DESC'); $sphinx_results = $sphinx->Query('', 'rt_index_name');
Пример №1 Время выполнения: 0.642
$sphinx = new SphinxClient(); $sphinx->SetLimits(0, 100); $sphinx->setGroupBy('product_brand', SPH_GROUPBY_ATTR); $sphinx_results = $sphinx->Query('', 'rt_index_name');
Пример №1 Время выполнения: 0.677
$sphinx = new SphinxClient(); $sphinx->SetLimits(0, 100); $sphinx->setGroupBy('product_category', SPH_GROUPBY_ATTR); $sphinx_results = $sphinx->Query('', 'rt_index_name');
0 комментариев