1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Поиск в XenForo: MySQL FullText vs Sphinx, преимущества и недостатки

Тема в разделе "Основные вопросы по XenForo", создана пользователем FractalizeR, 01.11.2010.

Загрузка
  1. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Поскольку некоторые владельцы больших форумов собираются переходить на поисковый движок Sphinx, изложу некоторые моменты, которые были осознаны на собственном опыте.

    Плюсы Sphinx
    • Возможность активации морфологического поиска (то есть, как бы человек не искал "форум", "форума", "форумов" и в каком бы виде поисковое слово не было упомянуто в посте, Sphinx покажет его в результатах поиска).
    • Возможность использования расширенного синтаксиса запросов (которым 99% клиентов пользоваться не будут)
    • Высокая скорость поиска
    • Минимальная нагрузка на сервер
    • Размер индекса примерно в два раза меньше, чем у MySQL FullText (со стандартными настройками)
    • Простая поддержка произвольных разделителей в качестве границы слова. Например, на своем форуме мне нужно было, чтобы поиск считал дефисы и подчеркивания частью слова. MySQL придется пересобрать для активации такой поддержки.

    Минусы Sphinx
    • Отложенная индексация. Содержимое только что написанного поста становится доступным в поиске не сразу, а только после запуска дельта-индексирования. Обычно, его запускают по планировщику каждые 10 минут. Часто запускать тоже не стоит, поскольку это сильно фрагментирует и раздувает индекс. В Sphinx 1.10 появилась возможность RealTime индексирования, но пока расширениями XF она не поддерживается. Финала 1.10 еще нет (только Beta), да и RT индексы имеют свои ограничения.
    • Необходимость полной реиндексации. Примерно раз в сутки индекс нужно перестраивать полностью, поскольку дельта-индексы не обладают требуемой производительностью для постоянного использования. Правда, сервер это нагружает не сильно.
    • Несоразмерные затраты на поиск по маске (типа "сообще*" или "*анная"). Это сильно раздувает индекс, поскольку при индексировании слова "пример" для обеспечения такого поиска в индекс будут включены все варианты, которые требуются для обеспечения поиска по маске (при, прим, приме, пример, ример, имер, мер, в случае, если в настройках указана минимальная длина префикса и суффикса - 3). Раздувание индекса приводит к замедлению поиска и индексирования.
    • Невозможность поиска по маске в середине строки "сооб*ие"
    • Операции индексации все равно немного нагружают MySQL для извлечения информации, по которой строится индекс. Хотя, этим можно пренебречь, если аддон поиска нормально написан.
     
    AleX, Pavel, TAIFUN и 4 другим нравится это.
  2. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Вот почему сфинкс подходит не всем. Самый оптимальный вариант поиска для форума я считаю Tokio Dystopia. Морфология на форуме обычно не нужна, т.к. все и так привыкли искать без нее, зато вот работа с масками у дистопии просто супер, да и по потребляемой памяти - очень хороший движок.

    P.S. Модуля для работы в xf с этим движком полнотекстового поиска пока нет.
     
  3. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Я бы не сказал, что тут существуют варианты, устраивающие всех или вообще оптимальные. Задачи и требования бывают различными. Sphinx имеет гораздо больше настроек, умеет разносить поиск по нескольким машинам, поддерживает произвольные наборы символов, case folding и так далее. Dystopia всего этого не умеет. Она довольно-таки неизвестна, не имеет нормальных API (только С), плохо документирована, примеров использования явно недостаточно, не имеет сложившегося большого сообщества вокруг проекта и так далее.

    Конечно, у любой системы поиска есть преимущества и недостатки. Так что говорить о превосходстве какой-либо без тщательного анализа сложно.
     
  4. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Вообще-то документировано очень неплохо и есть довольно большое сообщество - правда почти все на японском :) Dystopia - это именно движок полнотекстового поиска, а не отдельный демон. Чтобы получить что-то на подобии сфинкса надо добавить еще несколько уровней приложения (что кстати и объясняется в одной из презентаций автора). Но на базе этого движка уже есть несколько реализаций демонов для полнотекстового поиска и их при желании и можно использовать (обычно REST интерфейса достаточно для интеграции поиска в форуме). Показатель производительности этого движка, то что он используется в самой крупной японской социальной сети (http://mixi.jp/).

    Сфинкс однозначно хорош, к тому же это готовый продукт. Так что он рекомендуем в большинстве случаев.

    Но вот только у него есть несколько недостатков, которые лично мне мешают использовать сфинкс для поиска на форуме (взять то же неудобное использование масок). К тому же на некоторых форумах (особенно на крупных специализированных) морфология может быть даже вредна (хотя по идее она отключаема и на сфинксе).
     
  5. vovo

    vovo Активный пользователь

    Регистрация:
    23.02.11
    Сообщения:
    1
    Симпатии:
    0
    где моно скачать
     
  6. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    В гугле.
     
    iamvip нравится это.
  7. kris

    kris Активный пользователь

    Регистрация:
    21.10.11
    Сообщения:
    20
    Симпатии:
    10
    Я тестировал Sphinx с vB 3, работало замечательно. Если форум старый и много сообщений, нужно точно его вместо стандартного поиска ставить.
     
  8. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Разработчики обещали для владельцев собственных серверов сделать возможность выбора другого поиска. Должно якобы быстрее быть, но для этого нужно что-то будет на сервере подкрутить. Обещали к выходу 1.1 приурочить, но пока тихо. Либо будет в финальной версии, либо же чуть позже.
     
  9. santamo

    santamo Местный

    Регистрация:
    03.06.13
    Сообщения:
    256
    Симпатии:
    23
    Версия XF:
    1.2.4
    Уже два года тема не подымалась.
    Хотелось бы услышать спецов по современным системам поиска на сайте. Интересует только морфологический поиск.
    И еще одна тема по поиску - как сделать поиск по конкретным книгам или по списку книг? Как лучше организовать сие - выложить книги в папку или забить в постах тексты книг? спс.
     
  10. Valentine

    Valentine Новичок

    Регистрация:
    16.10.13
    Сообщения:
    23
    Симпатии:
    0
    внедрен Elasticsearch https://xenforo.com/help/enhanced-search/
    хотелось бы коментарев от гуру
     
  11. Ulibka

    Ulibka Активный пользователь

    Регистрация:
    02.11.17
    Сообщения:
    16
    Симпатии:
    0
    Версия XF:
    1.5.15
    Тоже хотелось бы узнать про установку/настройку Elasticsearch
     

Поделиться этой страницей