Выборочное индексирование и обсуждение поиска Sphinx

Автор kak2z, 17 ноября 2015, 17:01:13

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

kak2z

17 ноября 2015, 17:01:13 Последнее редактирование: 17 ноября 2015, 18:47:10 от kak2z
Я вот решил создать выборочное индексирование на форуме.. утром запустил, только пришел..
уже аж 2 процента сделало. Это мне 50 дней ждать пока у меня индексы построятся?? База около 4гиг.. наверно лучше сфинкс поставить?? там быстрее будет?
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)


kak2z

Цитата: digger® от 17 ноября 2015, 17:12:16Минут за двадцать 5млн сообщений индексирует.
тогда это очень странно... написал в личку.. 
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)


kak2z

Цитата: digger® от 17 ноября 2015, 17:35:35Это сфинкс индексирует. А стандартным такое неделю будет индексировать.
а.. понял... туплю..
тогда надо сфинкс ставить наверно.. буду читать.. спасибо..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

S.T.A.L.K.E.R.

Алексей если освоиш буду рад любой помощи...Что-то хочу и я поставить сфинкс...
Или я освою wallbash ,пошел и я читать...

Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

kak2z

Цитата: Mavn от 17 ноября 2015, 18:08:36в помощь https://github.com/SimpleMachines/sphinx-for-smf
как это работает можете рассказать?
1. Ставим сфинкс на сервер
2. Ставим мод
профит?? все работает? или еще что то надо?
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Mavn

1. создание индексов в командной строке там 2 типа индексов и их нужно создать
2. обновление индексов через крон настроить
3. сфинкс апи скачать с офф сайта сфикса и положить на форум
4. Указать в настройках форума использование индексов сфинкса

Вот и все
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

kak2z

Цитата: Stalker от 17 ноября 2015, 17:54:38Алексей если освоиш буду рад любой помощи...Что-то хочу и я поставить сфинкс...
Или я освою wallbash ,пошел и я читать...
пока что я нашел вот что)) http://adw0rd.com/2009/07/30/smf-sphinx/
но что то мне эта инструкция не особо помогает)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Mavn

Цитата: kak2z от 17 ноября 2015, 18:35:19но что то мне эта инструкция не особо помогает)
и не поможет... там версия смф 1.1
посмотрите репу что я вам дал там же в настройках все увидите проблем не должно будет возникнуть если какие-то ошибки будут пишите помогу разобраться
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

kak2z

17 ноября 2015, 19:29:43 #11 Последнее редактирование: 17 ноября 2015, 21:33:13 от kak2z
Цитата: Mavn от 17 ноября 2015, 18:58:38и не поможет... там версия смф 1.1
посмотрите репу что я вам дал там же в настройках все увидите проблем не должно будет возникнуть если какие-то ошибки будут пишите помогу разобраться

поставил... но вопросы есть...
там есть такая инструкция..

ЦитироватьCreate directories for storing the indexes: /var/sphinx/data
mkdir -p /var/sphinx/data
mkdir -p /var/sphinx/log
chmod a+w /var/sphinx/data
chmod a+w /var/sphinx/log
тут нам предлагают создать директории и назначить им права доступа...

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

 
ЦитироватьIt's time to create the indexes. Do not proceed with the next command if it fails.
/usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --all
/usr/bin/searchd --config /etc/sphinxsearch/sphinx.conf
тут нам говорят что пришло время создать индексы исходя из данных в конфигурационном файле..
возникает несколько вопросов:
1. если несколько доменов - то конфигурационный файл должен быть для каждого свой? тогда надо получается их переименовать? типа название_домена_sphinx.conf ?? правильно мыслю?)
2. нашел образец конфига в инете
Код
source product
{
        type = mysql
        sql_host = localhost
        sql_user = test
        sql_pass = ******
        sql_db = product
        sql_port = 3306

        sql_query_pre = SET NAMES cp1251
        sql_query_pre = SET CHARACTER SET cp1251

        sql_query = SELECT p.product_id, p.producе_title, p.product_description, t.tag_name FROM `product` p LEFT JOIN `product_tag` pt ON pt.product_id = p.product_id LEFT JOIN `tag` t ON pt.tag_id = t.tag_id

        sql_query_info = SELECT * FROM `product` WHERE `product_id` = $id
        sql_ranged_throttle = 0
}

index product
{
        source = product
        path = /home/larin/data/product
        docinfo = extern
        mlock = 0
        morphology = stem_enru
        min_word_len = 2
        charset_type = sbcs
        charset_table = 0..9, A..Z->a..z, _, a..z, U+A8->U+B8, U+B8, U+C0..U+DF->U+E0..U+FF, U+E0..U+FF
        min_infix_len = 2
        enable_star = 1
}

indexer
{
        mem_limit = 32M
}

searchd
{
        address = 127.0.0.1
        port = 3312
        log = /home/larin/log/searchd.log
        query_log = /home/larin/log/query.log
        read_timeout = 5
        max_children = 30
        pid_file = /home/larin/log/searchd.pid
        max_matches = 1000

}
я так понимаю ссылка в админке генерит уже готовый файл??

ЦитироватьIf everything worked so far, congratulations, Sphinx has been installed and works! Next step is modifying SMF's search to work with Sphinx
      
      In order to keep the full-text index up to date, you need to add a cron job that will update the index from time to time. The configuration file defines two indexes: smf_delta_index, an index that only stores the recent changes and can be called frequently.  smf_base_index, an index that stores the full database and should be called less frequently.
вот тут не совсем понял про smf_delta_index... вернее совсем не понял.. это что?


ЦитироватьAdding the following lines to /etc/crontab would let the index rebuild every day (at 3 am) and update the most recently changed messages each hour:
# search indexer
10 3 * * * /usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --rotate smf_base_index
0 * * * * /usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --rotate smf_delta_index
ну тут вроде все понятно... обновляем индексы по крону... только подставляем разные имена конфигов в зависимости от нашего домена..

так??



П.С. и не пойму почему генерация не работает по этой ссылке index.php?action=admin;area=managesearch;sa=settings;generateConfig;view

П.П.С.
закоментировал в файле SearchAPI-Sphinxql.php строки
Код
//	ob_end_clean();
// ob_start();
получил вывод конфига на экран а не в файл.. скопипастил.. вставил в sphinx.conf
включил sphinx
ЦитироватьTo enable sphinxsearch, edit /etc/default/sphinxsearch and set START=yes
запустил его service sphinxsearch start

пытаюсь построить индексы
Код
/usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --all
получаю вот такое
Код
root@:/etc/default# service sphinxsearch start
Starting sphinxsearch: Sphinx 0.9.9-release (r2117)
Copyright (c) 2001-2009, Andrew Aksyonoff

using config file '/etc/sphinxsearch/sphinx.conf'...
ERROR: unknown key name 'binlog_path' in /etc/sphinxsearch/sphinx.conf line 91 col 13.
FATAL: failed to parse config file '/etc/sphinxsearch/sphinx.conf'

что не так сделал??

П.П.П.С Отвечу сам.. версия 0.9 очень древняя.. надо было поставить 2.0

но теперь получаю такое
Код
root@:/var/sphinx/data# /usr/bin/searchd --config /etc/sphinxsearch/sphinx.conf
Sphinx 2.2.10-id64-release (2c212e0)
Copyright (c) 2001-2015, Andrew Aksyonoff
Copyright (c) 2008-2015, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/etc/sphinxsearch/sphinx.conf'...
FATAL: failed to lock pid file '/var/sphinx/data/searchd.pid': Resource temporarily unavailable (searchd already running?)
root@:/var/sphinx/data#


П.П.П.П.С
надо было отключить сервис
Код
root@:/var/sphinx/data# searchd --config /etc/sphinxsearch/sphinx.conf --stop

и запустить вот так вот
Код
/usr/bin/searchd --config /etc/sphinxsearch/sphinx.conf
тогда построилось все чтонужно было.. вроде))

но поиск так и не работает)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Mavn

Цитата: kak2z от 17 ноября 2015, 19:29:43как я понимаю до этого момента у нас уже должен стоять сфинкс, но без каких либо предварительных настроек..просто стоит и все..

да сфинкс устанавливается руками и самостоятельно :) на странице http://sphinxsearch.com/downloads/release/
можно выбрать пакет для установки

Цитата: kak2z от 17 ноября 2015, 19:29:431. если несколько доменов - то конфигурационный файл должен быть для каждого свой? тогда надо получается их переименовать? типа название_домена_sphinx.conf ?? правильно мыслю?)
2. нашел образец конфига в инете
1. да для каждого домена свой конфиг, и нужно прописывать pid порт и пр. для каждого домена разное на это советую обратить особое внимание
2. зачем? там же конфиг автоматом генерируется

Цитата: kak2z от 17 ноября 2015, 19:29:43ну тут вроде все понятно... обновляем индексы по крону... только подставляем разные имена конфигов в зависимости от нашего домена..
так??

типа того
Цитата: kak2z от 17 ноября 2015, 19:29:43что не так сделал??
неплохо было бы этот самый конфиг выложить
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

kak2z

Цитата: Mavn от 17 ноября 2015, 21:34:25типа тогонеплохо было бы этот самый конфиг выложить

Код
#
# Sphinx configuration file (sphinx.conf), configured for SMF 2.0
#
# By default the location of this file would probably be:
# /usr/local/etc/sphinx.conf

source smf_source
{
type = mysql
sql_host = localhost
sql_user = ******
sql_pass = *********
sql_db = ************
sql_port = 3306
sql_query_pre = SET NAMES utf8
sql_query_pre = \
REPLACE INTO smf_settings (variable, value) \
SELECT 'sphinx_indexed_msg_until', MAX(id_msg) \
FROM smf_messages
sql_query_range = \
SELECT 1, value \
FROM smf_settings \
WHERE variable = 'sphinx_indexed_msg_until'
sql_range_step = 1000
sql_query = \
SELECT \
m.id_msg, m.id_topic, m.id_board, IF(m.id_member = 0, 4294967295, m.id_member) AS id_member, m.poster_time, m.body, m.subject, \
t.num_replies + 1 AS num_replies, CEILING(1000000 * ( \
IF(m.id_msg < 0.7 * s.value, 0, (m.id_msg - 0.7 * s.value) / (0.3 * s.value)) * 25 + \
IF(t.num_replies < 200, t.num_replies / 200, 1) * 20 + \
IF(m.id_msg = t.id_first_msg, 1, 0) * 10 + \
IF(t.is_sticky = 0, 0, 1) * 0 \
) / 55) AS relevance \
FROM smf_messages AS m, smf_topics AS t, smf_settings AS s \
WHERE t.id_topic = m.id_topic \
AND s.variable = 'maxMsgID' \
AND m.id_msg BETWEEN $start AND $end
sql_attr_uint = id_topic
sql_attr_uint = id_board
sql_attr_uint = id_member
sql_attr_timestamp = poster_time
sql_attr_timestamp = relevance
sql_attr_timestamp = num_replies
}

source smf_delta_source : smf_source
{
sql_query_pre = SET NAMES utf8
sql_query_range = \
SELECT s1.value, s2.value \
FROM smf_settings AS s1, smf_settings AS s2 \
WHERE s1.variable = 'sphinx_indexed_msg_until' \
AND s2.variable = 'maxMsgID'
}

index smf_base_index
{
html_strip = 1
source = smf_source
path = /var/sphinx/data/smf_sphinx_base.index
min_word_len = 2
charset_table = 0..9, A..Z->a..z, _, a..z
}

index smf_delta_index : smf_base_index
{
source = smf_delta_source
path = /var/sphinx/data/smf_sphinx_delta.index
}

index smf_index
{
type = distributed
local = smf_base_index
local = smf_delta_index
}

indexer
{
mem_limit = 32M
}

searchd
{
listen = 0.0.0.0:9306:mysql41
log = /var/sphinx/log/searchd.log
query_log = /var/sphinx/log/query.log
read_timeout = 5
max_children = 30
pid_file = /var/sphinx/data/searchd.pid
binlog_path = /var/sphinx/data/
}


вот он))автоматом сгенерирован)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Mavn

смотрю опять сообщение поменял ...
поиск может не работать потому как у тебя сервис не запущен
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

kak2z

Цитата: Mavn от 17 ноября 2015, 21:45:07смотрю опять сообщение поменял ...
поиск может не работать потому как у тебя сервис не запущен
по ходу дела меняю)
запускал сервис... работает..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Mavn

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

kak2z

17 ноября 2015, 21:54:24 #17 Последнее редактирование: 17 ноября 2015, 22:57:34 от kak2z
Цитата: Mavn от 17 ноября 2015, 21:49:35работает сервис или поиск?
сервис работает) а поиск нет..
может что то не так сделал..
меня смущает вот это
Код
	sql_query_pre =	\
REPLACE INTO smf_settings (variable, value) \
SELECT 'sphinx_indexed_msg_until', MAX(id_msg) \
FROM smf_messages
вроде в запросе что то ищем в таблице smf_messages по полю sphinx_indexed_msg_until а у меня такого поля нет..
а в /var/sphinx/data появились файлы вида smf_sphinx_base*.??? и smf_sphinx_delta*.???


п.с.
в общем не пойму что ему надо..

п.п.с. ошибок нигде не вижу... моих знаний маловато.

п.п.п.с
функция
Код
function searchQuery
из файла SearchAPI-Sphinxql.php запускается.. но на выходе выдает пустой массив..
Код
array(2) { ["matches"]=> array(0) { } ["total"]=> int(0) }
значит сам сфинкс где то не так настроен или не так работает..
а то я подумал что может где то в коде проблема..
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

Mavn

Цитата: kak2z от 17 ноября 2015, 21:54:24вроде в запросе что то ищем в таблице smf_messages по полю sphinx_indexed_msg_until а у меня такого поля нет..
поиск уже не в базе идет а в индексах

у себя поставить и потестить с новой версией смогу только завтра после обеда
кстати проверь ошибки еще в логах nginx (apache) тип 404 ошибка может чего ищет а нету


ох тыж черт в репе модификации самое интересное написано :)))))), то на что никто не обратил внимание :) используется SphinxQL а не API а это нужно подключать и настраивать БД

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

kak2z

В общем спасибо Магистру Йоде Мавну и Магистру Диггеру. Да прибудет с вами сила!
Заработал поиск. Буду дальше разбираться что да как. Хочу попробовать словари поставить.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

S.T.A.L.K.E.R.

Инструкцию приблизительную составил бы хоть кто-то.

Wodan

Добрый день!
Хочу поднять эту тему.
Установил Сфинкс на большой форум - он его сильно разгружает, так как видно, что основные нагрузки ему создавал именно поиск.

Поделитесь опытом, при поиске очень редко строится вторая и последующие страницы - пишел, что нечего не найдено.
Хотя первая страница строится отлично, не зависимо от количества отображенных результатов поиска.

Я начал думать на то, что при переходе на следующую страницу я вижу длинный гет-запрос с, скорее всего, хешированным содержимым результатов или настроек поиска. Возможно длина запроса как-то влияет? Например, Апач не видит всю строку и обрезает ее.

gorbi


digger®

Цитата: Wodan от 17 мая 2017, 17:42:55Добрый день!
Хочу поднять эту тему.
Установил Сфинкс на большой форум - он его сильно разгружает, так как видно, что основные нагрузки ему создавал именно поиск.

Поделитесь опытом, при поиске очень редко строится вторая и последующие страницы - пишел, что нечего не найдено.
Хотя первая страница строится отлично, не зависимо от количества отображенных результатов поиска.

Я начал думать на то, что при переходе на следующую страницу я вижу длинный гет-запрос с, скорее всего, хешированным содержимым результатов или настроек поиска. Возможно длина запроса как-то влияет? Например, Апач не видит всю строку и обрезает ее.
Индексы нормально создались? Количество проиндексированных документов должно быть примерно равно количеству сообщений на форуме.

Ulibka

SMF 2.017

Экспериментирую на хостинге Beget.
На самом хостинге есть уже предустановленный Sphinx которым можно пользоваться.
Поставил Sphinx Отсюда:
https://github.com/SimpleMachines/sphinx-for-smf

Далее в меню админ/поиск/поисковое индексирование выбираю SphinxQL



В меню настройки появляется возможность скачать уже готовую конфигурацию для Sphinx:


Скачал, поставил на Beget, запустил индексацию

Индексы успешно создались


Судя по отчету прочитались все сообщения (порядка 1,3млн)


Что меня сразу смутило - это размер индекса - всего 136мб, а таблица порядка 1,3ГБ в UTF-8

Поиск не работает.

Пробую запускать тестовые запросы на Sphinx - он ничего не отдает.
Например нет выдачи по такому запросу:
select * from smf_base_index where match('иван') ;

по такому запросу выдача есть :
select * from smf_base_index where match('21') ;

Пробую разные русские слова - выдачи нет.
Как, думаете , в чем может быть проблема?

gorbi


Ulibka

Цитата: gorbi от 31 мая 2020, 13:31:56Какая конечная цель?

Обычный поиск на такой большой базе просто не создает индекс.
Соответственно единственный выход - подключить Sphinx

gorbi

Цитата: Ulibka от 31 мая 2020, 13:34:53Обычный поиск на такой большой базе просто не создает индекс.
А какая у вас база?

S.T.A.L.K.E.R.

Цитата: Ulibka от 31 мая 2020, 13:29:13Как, думаете , в чем может быть проблема?
Код
/usr/bin/indexer --config /etc/sphinxsearch/sphinx.conf --all
/usr/bin/searchd --config /etc/sphinxsearch/sphinx.conf
Что покажет выхлоп?
Цитата: gorbi от 31 мая 2020, 15:29:31А какая у вас база?
Цитата: Ulibka от 31 мая 2020, 13:29:13136мб, а таблица порядка 1,3ГБ в UTF-8

gorbi

А почему не использовать тогда полнотекстовое индексирование? У меня база побольше и никаких страданий. Не пойму, за что идёт борьба?

digger®

Цитата: Ulibka от 31 мая 2020, 13:29:13апример нет выдачи по такому запросу:
select * from smf_base_index where match('иван') ;

по такому запросу выдача есть :
select * from smf_base_index where match('21') ;

Пробую разные русские слова - выдачи нет.

Возможно выборка для создания индекса делается не в той кодировке. У меня на всякий случай в source добавлено
sql_query_pre = SET NAMES utf8

S.T.A.L.K.E.R.

Цитата: digger® от 31 мая 2020, 16:20:13Возможно выборка для создания индекса делается не в той кодировке. У меня на всякий случай в source добавлено
sql_query_pre = SET NAMES utf8
Да вот какая то непонятка и у меня
Это всё добавлено,но ищет только по английским словам
Буду признателен если поможете с этим.
Не добавляет в БД русские слова.Я уже проверил.
В логе поиска типа
[Sun May 31 16:42:35.528 2020] 0.001 sec 0.001 sec [ext2/1/ext 0 (0,1000) @id_topic] [smf_index] рецепС,С‹

S.T.A.L.K.E.R.

Цитата: gorbi от 31 мая 2020, 16:15:44А почему не использовать тогда полнотекстовое индексирование? У меня база побольше и никаких страданий. Не пойму, за что идёт борьба?
База сообщений у Вас более 1.3 гига?
Это у Вас более миллиона сообщений?
Цитата: Ulibka от 31 мая 2020, 13:29:13Пробую разные русские слова - выдачи нет.
Как, думаете , в чем может быть проблема?
Собака порылась вот в этой строке в конфиге сфинкса
Код
charset_table = 0..9, A..Z->a..z, _, a..z
После её удаления поиск начинает работать.Но мне кажется не правильно это удалять эту строку
Вот так правильно
Код
charset_table  = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+451, U+451
И пересоздайте индексы командами что я выше выложил.

digger®

Цитата: S.T.A.L.K.E.R. от 31 мая 2020, 17:10:25Это у Вас более миллиона сообщений?Собака порылась вот в этой строке в конфиге сфинкса
Код
charset_table = 0..9, A..Z->a..z, _, a..z
После её удаления поиск начинает работать.Но мне кажется не правильно это удалять эту строку
Вот так правильно
Код
charset_table  = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+451, U+451
И пересоздайте индексы командами что я выше выложил.

charset_table это опциональный параметр, который имеет смысл переопределять только, если нужно что-то отличное от латиницы с кириллицей.

Код
charset_table  = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+451, U+451
Это и есть уже заданное значение по умолчанию http://sphinxsearch.com/docs/current/conf-charset-table.html

S.T.A.L.K.E.R.

Цитата: digger® от 31 мая 2020, 17:45:30charset_table это опциональный параметр, который имеет смысл переопределять только, если нужно что-то отличное от латиницы с кириллицей.
Это дефолтный конфиг который выдало мне как и Улыбке в админке сам мод Сфинкса.
Как оказалось нужно доверять но проверять.
Цитата: digger® от 31 мая 2020, 17:45:30Это и есть уже заданное значение по умолчанию http://sphinxsearch.com/docs/current/conf-charset-table.html
Ага.Начал потом читать документацию и нашел это.
Работает поиск,хорошо так работает.Индексирует быстро да и ищет шустро.Встроенный поиск хоть и было включено индексирование и поиск только по индексам начал подвисать капитально и задумываться.
Я так понимаю галочку искать только по индексам теперь можно снять?

digger®

Цитата: S.T.A.L.K.E.R. от 31 мая 2020, 18:11:45Это дефолтный конфиг который выдало мне как и Улыбке в админке сам мод Сфинкса.
Написал issue https://github.com/SimpleMachines/sphinx-for-smf/issues/16

Цитата: S.T.A.L.K.E.R. от 31 мая 2020, 18:11:45Я так понимаю галочку искать только по индексам теперь можно снять?
Настройки стандартного индексирования, скорее всего, не вляют.

Для индекса sphinx можно еще включить морфологию, если есть интерес
Код
morphology = stem_enru
SMF словоформы не умеет подсвечивать в результатах, но выводить найденное будет.

S.T.A.L.K.E.R.

Цитата: digger® от 31 мая 2020, 19:09:34Написал issue
Спасибо.
Мне вот интересно другие кто ставил на эти грабли не наступали...Или наступали но молча правили иначе бы решение тут уже давно было.
Цитата: digger® от 31 мая 2020, 19:09:34Для индекса sphinx можно еще включить морфологию, если есть интерес
В доках там много чего интересного можно добавить.
Настройки гибкие у этого поиска.Можно как угодно настроить.

gorbi

А как вы отслеживаете популярность встроенного поиска? Мне казалось, что им чаще всего пользуются спамеры. А куда важнее внешний поиск.

S.T.A.L.K.E.R.

Цитата: gorbi от 31 мая 2020, 20:51:16А как вы отслеживаете популярность встроенного поиска? Мне казалось, что им чаще всего пользуются спамеры. А куда важнее внешний поиск.
Специфика форума такова что внутренний поиск весьма востребован.
Ищут на повторы-дубли,ищут чтобы просто найти то что нужно.Я обычно за день раз 20-30 пользуюсь поиском.
Поиск и далее будет востребован так что Sphinx это вопрос времени.Я давно к нему присматривался да не решался.Все мне казалось что не потяну такое.

Ulibka

База MySQL, порядка 1,3млн записей, кодировка UTF-8 , таблица smf_message на 1,3ГБ

Я не стал ставить Sphinx а воспользовался сервисом от Beget (Sphinx установлен). Это означает что доступа к консоли sphinx у меня нет :)

Простые индексы не создаются совсем.
(запустил на ночь на домашнем компьютере - не дошло до 1%)
Конфиг sphinx - взял тот что SMF сгенерировал, сам ничего не менял.
Когда пробовал свой конфиг (для примера smf_member, 90 тыс. проиндексировал ) - то поиск отдавал нормально.

В процессе меня очень смутило то что 1,3млн. записей было проиндексировано за 30 секунд ?
Но по отчетам Sphinx - Типа все нормально.

S.T.A.L.K.E.R., попробую сейчас Ваше решение.

digger®

Цитата: gorbi от 31 мая 2020, 20:51:16А куда важнее внешний поиск.
Внешним поиском не найти сообщения в конкретной теме или разделе или от конкретного юзера.
Внешним поиском не найти в сообщениях недоступных гостям.

gorbi

Цитата: digger® от 31 мая 2020, 21:49:16Внешним поиском не найти сообщения в конкретной теме или разделе или от конкретного юзера.
Внешним поиском не найти в сообщениях недоступных гостям.
Теперь понятно. Это специфика серьёзного контента.

Ulibka

S.T.A.L.K.E.R. , огромное Вам человеческое спасибо!

Действительно непонятно почему авторы оставили charset_table только для английских букв.
Честно говоря странно, почему никто из поставивших sphinx ранее не написал об этой милой особенности  :)

S.T.A.L.K.E.R.

Цитата: Ulibka от 31 мая 2020, 21:59:21S.T.A.L.K.E.R. , огромное Вам человеческое спасибо!
И Вам спасибо.Благодаря Вам я решился таки на установку Sphinx
Цитата: Ulibka от 31 мая 2020, 21:59:21Честно говоря странно, почему никто из поставивших sphinx ранее не написал об этой милой особенности  :)
Этим же вопросом я задавался на предыдущей странице.Судя по всему таки сталкивались и не один.

digger®

Цитата: Ulibka от 31 мая 2020, 21:59:21Действительно непонятно почему авторы оставили charset_table только для английских букв.
Честно говоря странно, почему никто из поставивших sphinx ранее не написал об этой милой особенности  :)
Sphinx официально не поддерживается, поэтому и из коробки его нет. На офсайте есть закрытый раздел для владельцев больших форумов и там все англоговорящие, поэтому проблемы индейцев шерифов не тревожат. Раньше на гитхабе не было репы и то, что касается sphinx можно было взять только в том разделе и там же все вопросы по нему обсудить.
Я несколько лет назад настроил себе sphinx  и просто конфиг копирую, даже не пользуясь сгенерированным, поэтому с такой проблемой не сталкиваюсь.

Ulibka

Тем, кто будут читать тему после
Запишите раздел smf_base_index вот так:


index smf_base_index
{
   html_strip        = 1
   source           = smf_source
   path         = /var/lib/sphinx/data/smf_sphinx_base.index
   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, U+401->U+451, U+451
   min_infix_len = 2
   morphology = stem_ru, stem_en
    charset_type = utf-8
    html_strip         = 1
}



не совсем уверен в действенности параметра html_strip (удаляет теги html)
В такой конфигурации стала искать по части слов.
В такой конфигурации 1,3млн сообщений проиндексировалось за 170 секунд.

Сейчас поиск доступен на тестовом сайте:
https://woodtools.site/

Через некоторое время поиск будет доступен на постоянном сайте:
https://forum.woodtools.ru/index.php

Ulibka

Цитата: digger® от 31 мая 2020, 22:26:19есть закрытый раздел

Подал я заявку на вступление в эту группу "Big Forum Operator"
Висит она не одобренная больше месяца :)

gorbi

А сколько лет вашему форуму и как вы делали карту сайта?

Ulibka

Цитата: gorbi от 31 мая 2020, 22:34:45А сколько лет вашему форуму и как вы делали карту сайта?

Больше 10 лет.
Основатель форума умер в 2017 году, с той поры форум не администрировался, только оплачивался хостинг,недавно я подхватил упавшее знамя :)

Признаться я был поражен насколько SMF оказался живуч!
Почти 3 года безо всякого вмешательства.
(за это время было только несколько тикетов в службу поддержки).

>> как вы делали карту сайта?
Отличный вопрос!
А никак - какая то есть старая, но с картой и поиском еще предстоит серьезно разобраться - я SEO никогда не занимался.

gorbi

Цитата: Ulibka от 01 июня 2020, 12:16:08А никак - какая то есть старая, но с картой и поиском еще предстоит серьезно разобраться - я SEO никогда не занимался.
Здесь будете об этом писать? Это интересно.

Ulibka

Я бы лучше чего нибудь на этот счет почитал :)

gorbi

Цитата: Ulibka от 01 июня 2020, 12:43:18Я бы лучше чего нибудь на этот счет почитал

А ощущаете потребность в SEO? Или в вашей категории и так всё ок?

Mavn

для тех кто будет у себя с нуля ставить и пр. радости жизни делать стоит обратить внимание на версии Sphinx и почитать в описании к моду какие версии Sphinx поддерживаются. Так же стоит учитывать что есть Sphinx индесирование на файлах(создаются файловые индексы), есть SphinxQL (в базе данных). Так же нужно учитывать что в свое время в smf порт для подключения к sphinx прописывался в бд, а в админке изменение порта не было, а порты в разных версиях Sphinx были разные в более старых  3312 в последних если память не изменяет 9312. Короче по настроке были нюансы. Я в свое время на одном очень большом форуме(6м+ сообщений) знатно зависал по этой теме ...  Документацию написать по этой теме не сложилось, в виду ее не очень большой востребованности...
 
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

gorbi

@Mavn с поиском теперь более-менее понятно, а как большие форумы решают проблему карты сайта?

Mavn

из того что тестировалось и делалось лучше на тот момент https://www.xml-sitemaps.com/ не было особенно при больших объемах. в скрипте нагрузку на сервак можно регулировать(типа сколько сканировать в единицу времени и пр. плюшки), но как правило на больших форума карта в принципе не нужна... там специфика общения, постоянные пользователи, а новые больше не по поиску приходят, а по другим вещам.

SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

gorbi

Цитата: Mavn от 01 июня 2020, 16:09:57но как правило на больших форума карта в принципе не нужна... там специфика общения, постоянные пользователи, а новые больше не по поиску приходят, а по другим вещам.
Оно то так, но я, например, откручиваю рекламу только гостям и они по сути оплачивают содержание форума. Поэтому гостевой трафик важен. А панели вебмастера недавно прочитал, что моя карта сильно меньше того, паук обходит по роботс.тхт

Mavn

Цитата: gorbi от 01 июня 2020, 16:21:33Поэтому гостевой трафик важен. А панели вебмастера недавно прочитал, что моя карта сильно меньше того, паук обходит по роботс.тхт
если тебе именно для этого, то я думаю вышеуказанный скрипт решит твою проблему. Там куча настроек но я думаю разберешься и под себя настроишь.

Цитата: gorbi от 01 июня 2020, 16:21:33они по сути оплачивают содержание форума
ну у меня наверное сложнее :), если посчитать содержание форума у меня не окупалось и для меня данный форум был хобби и стимулом для роста. Я благодаря ему многому научился :), так что наверное окупаемость была в виде знаний.
SimpleMachines Russian Community Team
п.1 Пройду курсы гадалок для определения исходного кода по скриншоту.

п.2 У вас нет желания читать правила раздела, у меня нет желания одобрять темы, которые не соответствуют этим правилам.

S.T.A.L.K.E.R.

Цитата: Mavn от 01 июня 2020, 15:57:30для тех кто будет у себя с нуля ставить и пр. радости жизни делать стоит обратить внимание на версии Sphinx и почитать в описании к моду какие версии Sphinx поддерживаются. Так же стоит учитывать что есть Sphinx индесирование на файлах(создаются файловые индексы), есть SphinxQL (в базе данных). Так же нужно учитывать что в свое время в smf порт для подключения к sphinx прописывался в бд, а в админке изменение порта не было, а порты в разных версиях Sphinx были разные в более старых  3312 в последних если память не изменяет 9312. Короче по настроке были нюансы. Я в свое время на одном очень большом форуме(6м+ сообщений) знатно зависал по этой теме ...  Документацию написать по этой теме не сложилось, в виду ее не очень большой востребованности...
Сейчас намного проще ставится.Единственный затык это было то что выше,впрочем его так же быстро удалось решить посмотрев базу Сфинкса
В админке изменения порта и сейчас нет.Это шаблон,подставив в него данные и нажав на кнопку можно сгенерировать конфиг который тем не менее руками нужно будет все равно положить на место...
А вот морфологию лучше всего таки отключить.Вроде и не плохо но в поиске временами такой винегрет выдаёт...

gorbi

Цитата: Mavn от 01 июня 2020, 16:32:27так что наверное окупаемость была в виде знаний.
Это у всех, наверно. Я под окупаемостью понимаю не временные затраты, а прямые издержки в виде платы за домен и хостинг. Меня напрягают варианты попрошайничества, давайте сбросимся. Лучше, когда оплачивают гости.  O0

Ulibka

Никто не пользовался блокировщиком AD Block ?:
https://blockadblock.com/

Какой лучше поставить ?

S.T.A.L.K.E.R.

Цитата: Ulibka от 01 июня 2020, 19:31:08Никто не пользовался блокировщиком AD Block ?:
Я себе искал рекламу с обходом блокировщиков.Это более действенно как по мне.

gorbi

А зачем вообще бороться с людьми, которые не хотят видеть рекламу? Они всё-равно её не увидят. Может правильнее определять полезность пользователя и не показывать рекламу полезным?

S.T.A.L.K.E.R.

Цитата: gorbi от 01 июня 2020, 20:16:24Они всё-равно её не увидят.
Они её все равно увидят.По статистике только 10% реально не видят рекламу.Остальные помимо их желания рекламу таки видят.Даже я с включенным блокировщиком с браузере её вижу
Цитата: gorbi от 01 июня 2020, 20:16:24А зачем вообще бороться с людьми, которые не хотят видеть рекламу?
Как не банально это звучит - чтобы ресурс жил и работал.
=======================================================
Теперь по теме поиска.Пока наблюдаю,но то что поиск отрабатывает быстрее это понятно и так.Точнее искать начало,по одним и тем же запросам начало находиться то чего ранее не находилось. Тут мощнее заметно система поиска.Если раньше по одному запросу мне выдавало от силы 40-50 результатов то тут выдало их 240.
Так что дело даже не количестве сообщений на форуме,поиском однозначно довольны все.

gorbi


S.T.A.L.K.E.R.

Цитата: gorbi от 01 июня 2020, 20:42:04А кто ещё платит за показы, не за клики?
Было пару тизерок.
У них смешанный выкуп был,за клики и показы.
Одна была довольно таки ничего,Розетку интернет-магазин откручивали практически постоянно
Не помню уже их,давно было.
Я с Medicineteaser продолжительное время уже.Правда регился еще там у них,в прошлом году всех перенесли в ads. bid

gorbi

01 июня 2020, 21:04:54 #65 Последнее редактирование: 01 июня 2020, 21:17:25 от gorbi
Цитата: S.T.A.L.K.E.R. от 01 июня 2020, 21:02:50Я с Medicineteaser продолжительное время уже.Правда регился еще там у них,в прошлом году всех перенесли в ads. bid
Чем лучше Гугла?

S.T.A.L.K.E.R.

Цитата: gorbi от 01 июня 2020, 21:04:54Чем лучше Гугла?
Тем что я сомневаюсь что меня туда примут :)
А раз я сомневаюсь то я даже и не пытался.Мне и там неплохо.

gorbi

Цитата: S.T.A.L.K.E.R. от 01 июня 2020, 21:23:41Тем что я сомневаюсь что меня туда примут
Меня когда-то так в Яндекс не взяли, а в Google взяли легко. Правда поучают по поводу контента

S.T.A.L.K.E.R.

Цитата: gorbi от 01 июня 2020, 21:38:42а в Google взяли легко. Правда поучают по поводу контента
Я что-то не сомневаюсь что меня поучать будут так же,и весьма активно.Так что желания что-то пока не наблюдается.
Цитата: gorbi от 01 июня 2020, 21:38:42Меня когда-то так в Яндекс не взяли
А вот в Яндекс в консоли веб-мастера да и так зазывают активно уже с пол года.Посмотрел ради любопытства.Там столько движений нужно чтобы начать зарабатывать...Пока так же что-то пере хотелось.

Ulibka

Цитата: S.T.A.L.K.E.R. от 01 июня 2020, 21:02:50Я с Medicineteaser продолжительное время уже.

Вы этот сайт имеете ввиду ?:
https://medicineteaser.org/

Яндекс платит совсем плохо

S.T.A.L.K.E.R.


S.T.A.L.K.E.R.

@digger® можно Вас попытать ещё немного?
sphinx rt index возможно добавить(сделать) тут,на этом движке?

digger®

Цитата: S.T.A.L.K.E.R. от 03 июня 2020, 21:18:34@digger® можно Вас попытать ещё немного?
sphinx rt index возможно добавить(сделать) тут,на этом движке?
Не знаю, пока не было необходимости такое применять. Можно попробовать для delta индекса прописать type = rt, может даже этого хватит.

S.T.A.L.K.E.R.

Цитата: digger® от 03 июня 2020, 21:49:16Не знаю, пока не было необходимости такое применять. Можно попробовать для delta индекса прописать type = rt, может даже этого хватит.

Не прокатило. Оно и понятно,было бы слишком просто. А интересно было бы чтобы индекс обновлялся на лету,при публикации сообщения. Но как мне кажется простого решения тут не получится. И без правки самого кода движка не обойтись. На досуге хочу поковыряться.

digger®

Цитата: S.T.A.L.K.E.R. от 04 июня 2020, 08:40:58Не прокатило. Оно и понятно,было бы слишком просто. А интересно было бы чтобы индекс обновлялся на лету,при публикации сообщения. Но как мне кажется простого решения тут не получится. И без правки самого кода движка не обойтись. На досуге хочу поковыряться.
А как он узнает что ему нужно обновиться? По моему, все равно нужно rt индекс как-то обновить, как и обычный.
А тогда, можно и просто delta index обновлять так часто, как нужно.

S.T.A.L.K.E.R.

Цитата: digger® от 04 июня 2020, 16:52:20А тогда, можно и просто delta index обновлять так часто, как нужно.
Именно так и поступил.Поставил обновлять каждую минуту да и всё.

Ulibka

Какие "сложные" запросы можно использовать в SMF ?
Я имею ввиду можно ли применять *, and , or
Дайте пожалуйста примеры сложных запросов.

Код я не смотрел, читал что входящий запрос от пользователя в ряде случаев разбирают и преобразовывают к иному виду, который передают в sphinx

digger®

Цитата: Ulibka от 11 июня 2020, 11:17:05Код я не смотрел, читал что входящий запрос от пользователя в ряде случаев разбирают и преобразовывают к иному виду, который передают в sphinx
У sphinx есть лог запросов, можно посмотреть в каком виде до него доходит.