А SPHINX работает?

Post Reply
Ling
Posts: 264
Joined: Wed Mar 16, 2016 12:27 pm

А SPHINX работает?

Post by Ling »

Выкидывает ошибки при индексации
[root@Host1 ~]# indexer --all --rotate
.......................
WARNING: attribute 'total_shows' not found - IGNORING
collected 0 docs, 0.0 MB
total 0 docs, 0 bytes
total 0.019 sec, 0 bytes/sec, 0.00 docs/sec
indexing index 'sitedomaincom_search_queries_index'...
WARNING: attribute 'date' not found - IGNORING
WARNING: attribute 'total_ctr' not found - IGNORING
WARNING: attribute 'total_shows' not found - IGNORING
WARNING: attribute 'tag_ids' not found - IGNORING
WARNING: attribute 'categories' not found - IGNORING
collected 28 docs, 0.0 MB
creating lookup: 0.0 Kdocs, 100.0% done
sorted 0.0 Mhits, 100.0% done
total 28 docs, 272 bytes
total 0.028 sec, 9548 bytes/sec, 982.93 docs/sec
total 6 reads, 0.000 sec, 88.8 kb/call avg, 0.0 msec/call avg
total 43 writes, 0.001 sec, 40.4 kb/call avg, 0.0 msec/call avg
rotating indices: successfully sent SIGHUP to searchd (pid=1776).
---------------------------------------

На странице поиска или тега выкидывает ошибки
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in /home/user/web/sitedomain.com/public_html/smartcj/includes/db_modules/mysql.php on line 423

Warning: Invalid argument supplied for foreach() in /home/user/web/sitedomain.com/public_html/smartcj/includes/libs/tpl_tags.php on line 0

Warning: join(): Invalid arguments passed in /home/user/web/sitedomain.com/public_html/smartcj/includes/libs/tpl_tags.php on line 0

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in /home/user/web/sitedomain.com/public_html/smartcj/includes/db_modules/mysql.php on line 423
-----------------------------

P.s. игрался со SPHINX 2, SPHINX 3, MANTICORE... Ошибки одни и те же
-----
И кстати, в связи с некоторой дубовостью и запущенностью SPHINX, предлагаю сделать поддержку MANTICORE.. У него есть свой репозиторий и ставится просто.. Я прикрутил его как сервис searchd, чтобы Смарт мог его видеть. Синтаксис, вроде бы одинаковый.. даже конфиги не надо переписывать
Last edited by Ling on Mon Jan 23, 2023 6:46 pm, edited 1 time in total.
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: А SPHINX работает?

Post by admin »

1. MANTICORE и сфинкс - одно и тоже = настройка одна и та же = в смарте добавлять ничего не надо, все и так будет работать, если вам нравится - ставьте его без проблем

2. сфинкс индексирует по конфигу сфинкса (мантикоре как вариант), скрипт не участует в индексации совсем
если не индексируется - значит ошибка в конфиге

выкладывайте конфиг если сами не разбираетесь в конфиге сфинкса
Don't forget to run script update
Ling
Posts: 264
Joined: Wed Mar 16, 2016 12:27 pm

Re: А SPHINX работает?

Post by Ling »

admin wrote: Mon Jan 23, 2023 6:43 pmв смарте добавлять ничего не надо, все и так будет работать
Отлично!!!
--------------------------------
Your Build 202301231339
Вот конфиг... взято из адинки смарта, коменты убрал

common {
plugin_dir = /usr/local/lib/manticore
}

searchd {
listen = 127.0.0.1:9312
listen = 127.0.0.1:9306:mysql
listen = 127.0.0.1:9308:http
log = /var/log/manticore/searchd.log
query_log = /var/log/manticore/query.log
pid_file = /var/run/manticore/searchd.pid
data_dir = /var/lib/manticore
query_log_format = sphinxql
}


source sitedomaincom_source
{
type = mysql
sql_host = localhost
sql_user = user
sql_pass = pass
sql_db = sitedomaincom


sql_query_pre = SET NAMES utf8
sql_query_pre = UPDATE rot_settings SET value = (SELECT MAX(gallery_id) FROM rot_gallery_info WHERE gallery_status = 'active') WHERE name = 'sphinx_max_gallery_id'

sql_query = SELECT gi.gallery_id, UNIX_TIMESTAMP(gi.activation_date) as date, \
gd.alt, gd.description, gi.duration, gi.sponsor_id, gs.total_ctr, gs.total_shows, gi.content_type, rot_sponsors.sponsor_name, rot_sponsors.sponsor_site,\
(SELECT group_concat(tag_id) FROM rot_gal2tag g2t \
WHERE g2t.gallery_id = gi.gallery_id) as tag_ids, \
(SELECT group_concat(tag_name) FROM rot_gal2tag g2t \
LEFT JOIN rot_tags as t on t.tag_id = g2t.tag_id \
WHERE g2t.gallery_id = gi.gallery_id) as tags, \
(SELECT group_concat(name) FROM rot_groups \
WHERE rot_groups.id in (SELECT group_id FROM rot_gallery_stats1 \
WHERE rot_gallery_stats1.gallery_id = gi.gallery_id AND group_id != 0) \
) as group_names, \
(SELECT group_concat(concat(model_name, ',', model_alias)) FROM rot_models \
WHERE rot_models.model_id in (SELECT model_id FROM rot_gal2model \
WHERE rot_gal2model.gallery_id = gi.gallery_id) \
) as model_names, \
(SELECT group_concat(distinct(gss.group_id)) FROM rot_gallery_stats1 as gss \
WHERE gss.gallery_id = gi.gallery_id AND group_id != 0) as categories \
FROM rot_gallery_info AS gi \
JOIN rot_sponsors on rot_sponsors.sponsor_id = gi.sponsor_id \
JOIN rot_sponsors_data on rot_sponsors.sponsor_id = rot_sponsors_data.sponsor_id\
JOIN rot_gallery_data1 AS gd ON gi.gallery_id = gd.gallery_id \
JOIN rot_gallery_stats1 AS gs ON gs.gallery_id = gi.gallery_id \
WHERE gallery_status = 'active' and gallery_type = 0 \
and gs.best_thumb = 'yes' and rot_sponsors_data.status = 1 and gs.group_id = 0 \
AND gs.group_id NOT IN (SELECT group_id FROM rot_groups_data WHERE status != 1)


sql_attr_timestamp = date
#if you use sphinx 3+ - uncomment line below and remove line above-пробовал оба варианта
#sql_attr_uint = date
sql_attr_uint = duration
sql_attr_uint = sponsor_id
sql_attr_float = total_ctr
sql_attr_float = total_shows
sql_attr_uint = content_type
sql_attr_multi = uint tag_ids from field;
sql_attr_multi = uint categories from field;

}


index sitedomaincom_index
{
source = sitedomaincom_source
path = /var/lib/manticore/sitedomaincom
# docinfo = extern
morphology = stem_en
}



# this is delta index, if you use it

source sitedomaincom_delta_source : sitedomaincom_source
{
sql_query_pre = SET NAMES utf8


sql_query = SELECT gi.gallery_id, UNIX_TIMESTAMP(gi.activation_date) as date, \
gd.alt, gd.description, gi.duration, gi.sponsor_id, gs.total_ctr, gi.content_type, rot_sponsors.sponsor_name, rot_sponsors.sponsor_site,\
(SELECT group_concat(tag_id) FROM rot_gal2tag g2t \
WHERE g2t.gallery_id = gi.gallery_id) as tag_ids, \
(SELECT group_concat(tag_name) FROM rot_gal2tag g2t \
LEFT JOIN rot_tags as t on t.tag_id = g2t.tag_id \
WHERE g2t.gallery_id = gi.gallery_id) as tags, \
(SELECT group_concat(name) FROM rot_groups \
WHERE rot_groups.id in (SELECT group_id FROM rot_gallery_stats1 \
WHERE rot_gallery_stats1.gallery_id = gi.gallery_id AND group_id != 0) \
) as group_names, \
(SELECT group_concat(model_name) FROM rot_models \
WHERE rot_models.model_id in (SELECT model_id FROM rot_gal2model \
WHERE rot_gal2model.gallery_id = gi.gallery_id) \
) as model_names, \
(SELECT group_concat(distinct(gss.group_id)) FROM rot_gallery_stats1 as gss \
WHERE gss.gallery_id = gi.gallery_id AND group_id != 0) as categories \
FROM rot_gallery_info AS gi \
JOIN rot_sponsors on rot_sponsors.sponsor_id = gi.sponsor_id \
JOIN rot_gallery_data1 AS gd ON gi.gallery_id = gd.gallery_id \
JOIN rot_gallery_stats1 AS gs ON gs.gallery_id = gi.gallery_id \
WHERE gallery_status = 'active' and gallery_type = 0 \
and gs.best_thumb = 'yes' and gs.group_id = 0 \
AND gs.group_id NOT IN (SELECT group_id FROM rot_groups_data WHERE status != 1) and gi.gallery_id > ( SELECT value FROM rot_settings WHERE name = 'sphinx_max_gallery_id' )
}


index sitedomaincom_delta_index
{
source = sitedomaincom_delta_source
path = /var/lib/manticore/sitedomaincomm
}




source sitedomaincom_search_queries_source : sitedomaincom_source
{

sql_query = SELECT sq_id, search_query, hits, items_found FROM rot_search_queries WHERE hits > 0 GROUP BY search_query

sql_attr_uint = hits
sql_attr_uint = items_found

}




index sitedomaincom_search_queries_index
{
source = sitedomaincom_search_queries_source
path = /var/lib/manticore/sitedomaincommm
# docinfo = extern
morphology = stem_en

}

indexer
{
mem_limit = 128M
}
admin
Site Admin
Posts: 37202
Joined: Wed Sep 10, 2008 11:43 am

Re: А SPHINX работает?

Post by admin »

source sitedomaincom_search_queries_source : sitedomaincom_source

надо сделать просто

source sitedomaincom_search_queries_source

и добавить в секцию

type = mysql
sql_host = localhost
sql_user = user
sql_pass = pass
sql_db = sitedomaincom


sql_query_pre = SET NAMES utf8
Don't forget to run script update
Post Reply