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

Настройка ElasticSearch

Тема в разделе "Для новичков", создана пользователем ANGEL OF FIRE, 20.03.2016.

Загрузка
  1. ANGEL OF FIRE

    ANGEL OF FIRE Модератор

    Регистрация:
    06.11.11
    Сообщения:
    395
    Симпатии:
    180
    Версия XF:
    1.1.3
    Если вводить в поиск слова латинскими буквами, то поиск отображает все результаты, как с большой буквы, так и с маленькой, но вот если ввести в поле поиска кириллицу, то ищет именно как напишешь, с большой буквы, то отображает все найденные слова только с большой буквы, с маленькой, то все слова которые написаны именно с маленькой буквы.

    Как вы можете понять в настройках lowercase прописан, но к сожалению почему то этот фильтр у меня не работает с кириллицей.

    Кто нибудь сталкивался с подобной проблемой?
     
  2. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Я не пользуюсь им, но есть инструкции по настройке "Настраиваем Elasticsearch для не английских языков". Попробуйте.
     
    ANGEL OF FIRE нравится это.
  3. ANGEL OF FIRE

    ANGEL OF FIRE Модератор

    Регистрация:
    06.11.11
    Сообщения:
    395
    Симпатии:
    180
    Версия XF:
    1.1.3
    infis, это я уже просматривал и пробовал. Такая же проблема. Я уже лучше настроил, стоп слова и т.д. Единственное этот глюк не смог победить.
     
  4. SAS1024

    SAS1024 Местный

    Регистрация:
    23.04.15
    Сообщения:
    85
    Симпатии:
    87
    Версия XF:
    1.4.10
    ANGEL OF FIRE, а какая версия ElasticSearch у тебя стоит?
     
    ANGEL OF FIRE нравится это.
  5. ANGEL OF FIRE

    ANGEL OF FIRE Модератор

    Регистрация:
    06.11.11
    Сообщения:
    395
    Симпатии:
    180
    Версия XF:
    1.1.3
    Последняя. 2.2.1

    Обновил недавно. Хотя и на предыдущей тот же глюк был.
     
  6. SAS1024

    SAS1024 Местный

    Регистрация:
    23.04.15
    Сообщения:
    85
    Симпатии:
    87
    Версия XF:
    1.4.10
    ANGEL OF FIRE, просто у меня 1.7.х ветка, и подобных проблем не наблюдается. Ничего особенного не настраивал.
     
  7. ANGEL OF FIRE

    ANGEL OF FIRE Модератор

    Регистрация:
    06.11.11
    Сообщения:
    395
    Симпатии:
    180
    Версия XF:
    1.1.3
    Вот это и странно. Даже на их сайте спрашивал. Написали что таких проблем не замечали.
     
  8. ANGEL OF FIRE

    ANGEL OF FIRE Модератор

    Регистрация:
    06.11.11
    Сообщения:
    395
    Симпатии:
    180
    Версия XF:
    1.1.3
    Сейчас общался на форуме по эластику. Добился что бы при поиске отображались слова на кириллице как с большой буквы, так и с маленькой. Поиск выдаёт все слова, но не выделяет их.

    У вас такая же проблема?

    Пример слова Тест

    2016-03-26_02-25-39.jpg


    А так как он их не выделяет, то и поиск через плагин ElasticSearch Essentials работает некорректно.

    Он их не считает за найденные слова.
     
  9. SAS1024

    SAS1024 Местный

    Регистрация:
    23.04.15
    Сообщения:
    85
    Симпатии:
    87
    Версия XF:
    1.4.10
    Да, у меня так же - Тест выделяется жирным, а тест - нет.
    Видимо надо об этом написать разработчикам, так как это явно косяк XenForo - я у себя на сайте поиск через ElasticSearch, у меня всё правильно ищется и выделяется.
     
    ANGEL OF FIRE нравится это.
  10. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Видимо, он все же считает их найденными, но при выводе результата, скорее всего, в самом XenForo эти слова не выделяются. Можете попробовать на офе запостить это. Если это баг, то его разработчики поправят сами. А можете и сами поковырять код.
     
    ANGEL OF FIRE нравится это.
  11. ANGEL OF FIRE

    ANGEL OF FIRE Модератор

    Регистрация:
    06.11.11
    Сообщения:
    395
    Симпатии:
    180
    Версия XF:
    1.1.3
    Есть плагин (платный) ElasticSearch Essentials, который показывает результаты при наборе. Так называемый поиск на лету. Так вот в нём он не отображает эти результаты. Из за чего я вообще и начал искать почему. Если латиницей, то отображает все результаты, а вот если кириллицей, то нужно конкретно писать или с большой буквы, или с маленькой.

    Значит глюк всё таки есть. Теперь надо найти из за чего он, из за ксенфоровского софта, или же эластика.
     
  12. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Вы же сами видите, что в результатах поиска отображается всё. Но не всё выделяется. Обычно выделение текста производится не в поисковом движке, а на стороне клиента. В данном случае клиентом является XenForo и его плагины. Значит проблема лишь в выделении, которая обычно решается с помощью добавления в регулярное выражение модификаторов i (регистронезависимость) и u (работать со строкой в unicode). Более, чем уверен, что модификатор i там есть (на это указываете Вы сами, говоря, что для латинницы все работает правильно), а вот модификатора u там может и не быть, что и будет означать нежелание обрабатывать кириллицу. Но всё это не факт, так как обработка может быть сделана совершенно другим образом. У меня нет этого плагина, поэтому не могу ничего более конкретного сказать.
     
    ANGEL OF FIRE нравится это.
  13. ANGEL OF FIRE

    ANGEL OF FIRE Модератор

    Регистрация:
    06.11.11
    Сообщения:
    395
    Симпатии:
    180
    Версия XF:
    1.1.3
    Я там баг создал. Но если возможно, отпишитесь там пожалуйста. А то Майк проигнорирует, напишет типа нет возможности проверить и т.д.. Не любит он с другими языками возится.

    Ссылка Cyrillic keywords highlighting
     
    SAS1024 нравится это.
  14. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Надо было на английском языке было делать скриншот. Чтобы интерфейс был английский. А отписываться мне там не о чем. Строить свои догадки - разработчики этого не понимают :)
    И надо искать слово, где встречаются чисто кириллические символы. Так понятнее будет для них.
     
    ANGEL OF FIRE нравится это.
  15. ANGEL OF FIRE

    ANGEL OF FIRE Модератор

    Регистрация:
    06.11.11
    Сообщения:
    395
    Симпатии:
    180
    Версия XF:
    1.1.3
    Сделал на английском интерфейсе. И слово Дримбокс взял.
     
  16. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Да. Теперь им будет понятнее.
     
  17. SAS1024

    SAS1024 Местный

    Регистрация:
    23.04.15
    Сообщения:
    85
    Симпатии:
    87
    Версия XF:
    1.4.10
    В общем, это явная недоработка функции highlightSearchTerm в library/XenForo/Helper/String.php - там regexp только английские символы учитывает.
    К ElasticSearch это не относится - такое же поведение возникает и с обычным поиском.

    В общем, исправление, если вдруг Майк скажет что это не баг и что так задумано:

    В файле library/XenForo/Helper/String.php ищем:
    PHP:
    return preg_replace('/(' preg_replace('#\s+#''|'preg_quote(htmlspecialchars($term), '/')) . ')/si''<em class="' $emClass '">\1</em>'htmlspecialchars($string));
    И заменяем на:
    PHP:
    return preg_replace('/(' preg_replace('#\s+#''|'preg_quote(htmlspecialchars($term), '/')) . ')/siu''<em class="' $emClass '">\1</em>'htmlspecialchars($string));
     
    Последнее редактирование: 27.03.2016
    infis нравится это.
  18. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Да, так оно и есть. Значит, я был прав, и разработчики просто не заморачивались включением поддержки юникода в регулярке. Интересно, неужели они думают, что в мире кроме латинского других алфавитов не существует? Ведь элементарно, коль весь движок на юникоде, ну так и в регулярках нужно везде использовать модификатор u.
     
  19. ANGEL OF FIRE

    ANGEL OF FIRE Модератор

    Регистрация:
    06.11.11
    Сообщения:
    395
    Симпатии:
    180
    Версия XF:
    1.1.3
    Подправил у себя. Спасибо. Но это не все проблемы решает.

    Как пример искомое слово Новости

    2016-03-27_10-20-33.png


    Elastic поиск выдал так же "новость", а получается это слово уже не выделяется как результат.
     
  20. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    А вот это уже нельзя сделать регулярками, так как нужно анализировать окончания слов, словоформы и так далее. Может быть Elastic Search как-то отдает эту информацию в XenForo, но не уверен.
     

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