Поиск внутри строк

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • jod
    Junior Member
    • Oct 2018
    • 13

    Поиск внутри строк

    Добрый день.
    Ранее была установлена версия 5.1.2 и с флагом 'textFilterUseContainsForVarchar' => true, поиск работал хорошо. После обновления до 5.4.3 стало намного неудобнее. Я попробую показать на примере.

    Имеется контрагент "ТОВ Лан".

    В версии 5.1.2
    При поиске по слову "Лан" нужный результат был в одной из верхних строчек.

    В версии 5.4.3
    При поиске по слову "Лан" находит только фамилию Ландышев.
    Поиск по "%Лан" находит всех Светлан, Русланов и все другие записи с "лан" отсортированные по алфавиту. Искомая "ТОВ Лан" где-то в самом конце списка.
    Поиск по "% Лан" (с пробелом) показывает результаты примерно как при поиске в версии 5.1.2.
    Поиск по "*Лан" находит искомый "ТОВ Лан" и почему-то только одного Руслана.

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

    Кроме того, переключение галочек "Full-Text Search" в свойствах таблицы Account и галочки "Use 'contains' operator when filtering varchar fields" в настройках не дают никаких заметных эффектов.

    Что я делаю не так?
    Как добиться результатов того простого и удобного поиска как был ранее?
  • tanya
    Senior Member
    • Jun 2014
    • 4308

    #2
    Отключите "Full-Text Search", включите 'textFilterUseContainsForVarchar' => true, Rebuild
    причина скорее всего в Full-Text Search

    Comment

    • jod
      Junior Member
      • Oct 2018
      • 13

      #3
      Спасибо. Изначально все так и было настроено, так и осталось.
      Это была моя ошибка, я выбрал неудачный пример для проверок. При поиске по четырем символам все работает отлично.

      Но все таки хотелось бы сделать и для трех символов.
      Меняю ft_min_word_len=3 в my.ini, перезапускаю mysql, запускаю rebuild. Вижу что в espocrm\data\config.php поменялось значение 'fullTextSearchMinLength' => 3.
      Все равно результаты поиска те же. Что я пропустил?

      Comment

      • tanya
        Senior Member
        • Jun 2014
        • 4308

        #4
        Если не используете fulltext, то параметр в конфиге, определяющий минимальную длину фразы textFilterContainsMinLength

        Comment

        Working...