Page 1 of 6
sphinx delta
Posted: Sun Jun 20, 2021 9:19 pm
by darkover
Привет! Чет я видать не то делаю, ошибки у меня типа:
ERROR: section 'delta' (type='source') already exists - доменов много, если один такой конфиг оставляю - делает, если два - уже на втором ошибка на неуник индекс delta
Code: Select all
source domaincom
{
//skip//
}
index domaincom_index_scj
{
source = domaincom
path = /sphinx/scj_index
//skip//
}
source delta : domaincom
{
//skip//
}
index delta : domaincom_index_scj
{
source = delta
path = /sphinx/scj_index_delta
}
В wiki нифига не понятно, по всей видимости delta - должно быть уникально
Re: sphinx delta
Posted: Mon Jun 21, 2021 3:41 am
by admin
имя индекса должно быть уникальным
index domaincom_index_scj
это у вас уникально
index delta
а тутв идимо одно и то же
Re: sphinx delta
Posted: Mon Jun 21, 2021 10:15 am
by darkover
admin wrote: Mon Jun 21, 2021 3:41 am
имя индекса должно быть уникальным
index domaincom_index_scj
это у вас уникально
index delta
а тутв идимо одно и то же
Эм, что бы не путаться как-то так ?
Code: Select all
source domaincom_delta : domaincom
{
//skip//
}
index domaincom_index_delta : domaincom_index_scj
{
source = domaincom_delta
path = /sphinx/scj_index_delta
}
Re: sphinx delta
Posted: Mon Jun 21, 2021 10:20 am
by admin
да
Re: sphinx delta
Posted: Mon Jun 21, 2021 2:35 pm
by darkover
Хе, сделал. Проверил. В дельту пишутся новые записи при добавлении галерей.
но вот merge делать не хочет
indexer --rotate --merge domaincom_index_scj domaincom_index_delta
FATAL: failed to merge index 'domaincom_index_delta' into index 'domaincom_index_scj': fulltext fields count mismatch (me=/sphinx/scj_index, in=/sphinx/scj_index_delta, myfields=6, infields=4)
Re: sphinx delta
Posted: Mon Jun 21, 2021 2:55 pm
by admin
Re: sphinx delta
Posted: Mon Jun 21, 2021 3:14 pm
by darkover
Неа, не фурычит слияние
indexer --rotate domaincom_index_scj
запуск грабера
indexer --rotate domaincom_index_delta
в него записались данные новые
Code: Select all
merging index 'domaincom_index_delta' into index 'domaincom_index_scj'...
read 0.4 of 0.4 MB, 100.0% done
FATAL: failed to merge index 'domaincom_index_delta' into index 'domaincom_index_scj': fulltext fields count mismatch (me=//sphinx/scj_index, in=//sphinx/scj_index_delta, myfields=6, infields=4)
может что-то с запросами не так ? В дельте запрос меньше
Code: Select all
source domaincom
{
type = mysql
sql_host = localhost
sql_user =
sql_pass =
sql_db =
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET NAMES utf8
sql_query_pre = UPDATE rot_settings SET value = (SELECT MAX(gallery_id) FROM rot_gallery_info) 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, 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(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)
sql_attr_timestamp = date
sql_attr_uint = duration
sql_attr_uint = sponsor_id
sql_attr_float = total_ctr
sql_attr_uint = content_type
sql_attr_multi = uint tag_ids from field;
sql_attr_multi = uint categories from field;
}
index domaincom_index_scj
{
source = domaincom
path = /sphinx/scj_index
docinfo = extern
morphology = stem_en # or stem_ru for example
min_word_len = 3
min_infix_len = 2
}
source domaincom_delta : domaincom
{
sql_query_pre = SET NAMES utf8
sql_query = SELECT gi.gallery_id, UNIX_TIMESTAMP(gi.activation_date) as date, alt, description, gi.duration, sponsor_id, gs.total_ctr, gi.content_type, \
(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(tag_id) FROM rot_gal2tag g2t \
WHERE g2t.gallery_id = gi.gallery_id) as tag_ids, \
(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(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_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 gi.gallery_id > ( SELECT value FROM rot_settings WHERE name = 'sphinx_max_gallery_id' ) \
AND gallery_status = 'active' and gallery_type = 0 \
and gs.best_thumb = 'yes' and gs.group_id = 0
}
index domaincom_index_delta : domaincom_index_scj
{
source = domaincom_delta
path = /sphinx/scj_index_delta
}
Re: sphinx delta
Posted: Mon Jun 21, 2021 3:24 pm
by admin
не совпадают запросы, где-то элементрная ошибка конфига
как не сложно заметить тут только сфинкс и смарт никаким боком, надо смотреть именно конфиг сфинкса
админ смотрел?
Re: sphinx delta
Posted: Mon Jun 21, 2021 3:45 pm
by darkover
admin wrote: Mon Jun 21, 2021 3:24 pm
не совпадают запросы, где-то элементрная ошибка конфига
как не сложно заметить тут только сфинкс и смарт никаким боком, надо смотреть именно конфиг сфинкса
админ смотрел?
Я же не с потолка взял, а с wiki

вот запросы для построения индекса :
sql_query = SELECT gi.gallery_id, UNIX_TIMESTAMP(gi.activation_date) as date, \ etc
а вижу, что в delta - с вики, например rot_sponsors - в выборке не участвует. По мне так это как раз -1 поле, которого не хватает.
Re: sphinx delta
Posted: Mon Jun 21, 2021 3:49 pm
by admin
запросы должны совпадать
запрос может быть по-разному построен, и пример, с описанием, делает прямо в настроках скрипта , там где вписывается скрипт
те рещение вопроса - сделать что б запросы совпадали