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

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

« назад - далее »

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

kak2z

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


kak2z

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


kak2z

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

Yarik

Алексей если освоиш буду рад любой помощи...Что-то хочу и я поставить сфинкс...
Или я освою 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

#11
Цитата: 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
Цитата: 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

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

Yarik

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

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Обычный поиск на такой большой базе просто не создает индекс.
А какая у вас база?

Yarik

Цитата: 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

Yarik

Цитата: 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] рецепС,С‹

Yarik

Цитата: 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

Yarik

Цитата: 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_enruSMF словоформы не умеет подсвечивать в результатах, но выводить найденное будет.

Yarik

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

gorbi

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

Yarik

Цитата: 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 ранее не написал об этой милой особенности  :)

Yarik

Цитата: 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 никогда не занимался.
Здесь будете об этом писать? Это интересно.