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

1.4.5 Поиск плохо работает

Тема в разделе "Для новичков", создана пользователем aligon7, 01.04.2015.

Загрузка
  1. aligon7

    aligon7 Местный

    Регистрация:
    22.12.12
    Сообщения:
    997
    Симпатии:
    66
    Версия XF:
    1.4.7
    Так, поиск клинит,
    Если название содержит тере после первого слова, то поиск просто не находит тему.
    Если его убрать. то всё в норме, как решить такую проблему?
     
  2. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Вероятно, тире является разделителем слов. А что не так с этим подходом?
     
  3. aligon7

    aligon7 Местный

    Регистрация:
    22.12.12
    Сообщения:
    997
    Симпатии:
    66
    Версия XF:
    1.4.7
    Да именно и поиск найти не как не может материал
    Допустим, у меня есть этот продукт на сайте
    LOVE - CLEANING: Как очистить пространство любви
    Но поиск его найти не может, а пишешь без (-), товсё находит. и это я замечал на многих проектах.
    Скажите, как решить эту проблему
     
  4. FractalizeR

    FractalizeR XenForo Addicted

    Регистрация:
    27.09.10
    Сообщения:
    1 085
    Симпатии:
    832
    Версия XF:
    1.3.2
    Просто и быстро этого не сделать. По умолчанию XenForo использует полнотекстовые индексы MySQL. А там символы, являющиеся разделителями слов настраиваются либо через правку исходника MySQL либо через создание / изменение набора символов, которые использует таблица xf_search_index. В обоих случаях требуется перестройка индекса.

    Альтернативой может выступать переход на другой поисковый движок. XenForo сам поддерживает Elastic. Его, кажется, можно купить на оффе. Кто-то из ребят тут на форуме писал движок под Sphinx.
    --- добавлено : Apr 2, 2015 8:38 AM ---
    Хотя есть еще одно решение, но оно грязновато. Можно модифицировать (вручную, патчем или аддоном) вот этот метод: \XenForo_Search_SourceHandler_MySqlFt::_pushToIndex. В нем внутри массива
    $record в элементе message можно заменить (через str_replace, например) все дефисы на пустую строку. После чего полностью перестроить поисковый индекс.

    Затем нужно будет модифицировать места в коде вроде \XenForo_ControllerPublic_Search::actionSearch чтобы дефисы везде заменялись на пустую строку при любом виде поиска.

    Нужно понимать, что приведет это к тому, что поиск станет работать, как будто дефисов в тексте вообще нет.
     
    Последнее редактирование модератором: 10.04.2015
  5. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Проверил у себя на сайте. Все ищет. Хоть с тире, хоть без тире. При этом тире просто игнорируется в поиске.
     
  6. Sergey1

    Sergey1 Местный

    Регистрация:
    28.04.13
    Сообщения:
    176
    Симпатии:
    59
    Версия XF:
    1.4.1
    а у меня, заметил давно уже, если в поиске набрать, например, "приве", он не находит ничего, а если "привет" - то находит все.
     
  7. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Штатный поиск работает только по полному совпадению слова.
     
    Kolya groza morey нравится это.
  8. Sergey1

    Sergey1 Местный

    Регистрация:
    28.04.13
    Сообщения:
    176
    Симпатии:
    59
    Версия XF:
    1.4.1
    спасибо, стало понятно.

    Вот, кстати, информация с одного из форумов для хостящихся в FastVPS по поводу ElasticSearch:

    Вопрос:
    Ответ:
     

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