FULL text поиск Mysql ищет текст внутри текста?

  • Автор темы Автор темы Axel
  • Дата начала Дата начала

Axel

Client
Регистрация
20.03.2017
Сообщения
176
Реакции
10
Баллы
18
Подскажите какой должен быть запрос аналогичный %LIKE% только для FULL text индекса?

SELECT * FROM `table` WHERE MATCH (column) AGAINST ('*text*' IN BOOLEAN MODE)

не работает. Точнее работает, но первая звездочка в
'*text*'
не учитывается. Находит предложения где слово начинается с text.

А нужно чтобы находил
1text1
atexta

тоже.
 
Подскажите какой должен быть запрос аналогичный %LIKE% только для FULL text индекса?

SELECT * FROM `table` WHERE MATCH (column) AGAINST ('*text*' IN BOOLEAN MODE)

не работает. Точнее работает, но первая звездочка в
'*text*'
не учитывается. Находит предложения где слово начинается с text.

А нужно чтобы находил
1text1
atexta

тоже.
используй конструкции IN()
 
  • Оценить
Реакции: Axel
А подскажите где что найти, что-то не гуглится тема :bn:
 
вот пример. С текстом гораздо быстрее работает чем регулярки
Screenshot_226.png
 
Так там числовые значения, а у меня поиск внутри текста. И числа и буквы могут быть, там выборка из текста хешей.
 
Так там числовые значения, а у меня поиск внутри текста. И числа и буквы могут быть, там выборка из текста хешей.
ты прочёл что я написал текстом?
 
звездочка в контексте full-texе search работает только после слова т.е text*, но не вначале
если вам нужен аналог *text* пишите просто text без всяких звездочек вначале и конце (если это одно слово)
если под text подразумевается несколько слов, то там уже возможны различные варианты
более подробно все это описано на официальном сайте https://dev.mysql.com/doc/refman/8.0/en/fulltext-boolean.html
 
Находит предложения где слово начинается с начала.

А нужно чтобы находил в том числе строки где есть
1zennoposter
1zennoposter1
azennoposter
azennopostera
 
да, похоже фултекстом так не найти .... видимо придется юзать старый-добрый LIKE (хотя степень его "доброты" под большим вопросом т.к в используя %слово% индекс задействован не будет )
 
Им запрос выполняется секунд 20 при 100% нагрузке на диск SSD. База на 60 млн. строк. Индекс есть.
Вот такой он старый добрый.
поэтому я и написал что степень его "доброты" под большим вопросом ;)
что самое обидное что используя LIKE 'слово%' индекс используется, а при %слово% нет
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)