Я имею таблицу с двумя полями и ста тысячами реестров возможных ответов по отношению к вопросу пользователя.
Я нуждаюсь в том, чтобы удасться искать совпадение в главном файле вопроса, что я считаю сохраняемым в моей колонне вопрос с фразой, которую клиент предоставлял.
Пример был бы:
columna pregunta1 = * hola * como estas *
columna respuesta1 = yo muy bien y tu.
columna pregunta1 = * como estas * amigo *
columna respuesta1 = yo bien gracias y tu.
frase del cliente= "hola que tal amigo como estas. podemos blablabla";
Поскольку они видят, первый вопрос моей базы данных совпадает больше с фразой клиента, что вторая, так как у них есть добавленный слово "друг".
Я попробовал создавать нечто похожее:
select "Hola max, como estás, te deseo feliz navidad" REGEXP ("[^*.][:como:][^*.][:est.*:][.*$]");
как примечание должно быть с mysql, потому что я хочу, чтобы он был портативным в любой язык.
Я рекомендую тебе не 'изобретать' твой собственный язык таких регулярных выражений как который ты используешь aquГ-:
* hola * como estas *
, Так как в конце концов любой soluciГіn pasarГЎ из-за того, что "это обращает" в язык регулярных выражений mГЎs comГєn.
AsГ - так как, что harГ - в, так как тебе интересно сохранять mapeo вопросов с ответами в bbdd, serГ, - чтобы хранить вопросы уже с форматом регулярных выражений, вынесенным из-за mysql.
Для твоего случая кажется, что просто с \b
и .*
podrГ-схвати, приспосабливать вопросы
\b
Значит барьер слова, а именно, что, если мы ищем \bpata\b
encontrarГ-хозяев pata
, но не patata
.*
значит любой характер 0 или mГЎs разы
AsГ - так как, для примеров, которые ты поместил, они podrГ-схвати хранить asГ - в bbdd (имей в виду, что контрабруски должны убегать, когда вводится в bbdd)
\\bhola\\b.*\\bcomo estas\\b.*
\\bcomo estas\\b.*\\bamigo\\b
DespuГ©s, query quedarГ - во что-то asГ-:
select respuesta
from preguntas_respuestas
where regexp_like("como estas amigo bla bla",
pregunta);
у Тебя Есть demo aquГ - для того, чтобы ты видел cГіmo, функционирует
В конце концов, тебя присоединила documentaciГіn где podrГЎs оказываться синтаксис допущенным из-за mysql в регулярных выражениях.
С регулярными выражениями, вынесенными из-за mysql, podrГ-схвати делать успехи с твоими обязательными условиями. Если в algГєn момент у тебя остается коротким, podrГ-схвати думать о том, чтобы использовать MariaDB вместо mysql. MariaDB выносит PCRE (Регулярный Перл Компатибле Expressions), с которым podrГ, - чтобы получать bГєsquedas главных файлов mГЎs сложные.
В конце концов, комментировать, что, когда ты введешь вопросы в bbdd, какие-то символы tendrГЎn, что убегать заблаговременно.
Например, если ты вводишь вопрос Hola.
, и искать Hola!
ты это encontrarГ - в, потому что точка .
в регулярных выражениях значит любой характер. AsГ - который во время сохранения вопроса deberГ-схвати guadarla asГ-: Hola\.