2009-02-27 4 views
5

Как узнать, когда пользователь пропустил пробел при вводе поискового запроса? Например, если пользователь вводит «usbcable», я хочу найти «USB-кабель». Я выполняю поиск в REGEX в MySQL для соответствия полным словам.Признать недостающее пространство

У меня есть таблица с каждым термином, используемым при поиске, поэтому я знаю, что «usb» и «cable» являются действительными условиями. Есть ли способ построить предложение WHERE, которое даст мне все строки, где термин соответствует части строки?

Что-то вроде этого:

SELECT st.term 
FROM SearchTerms st 
WHERE 'usbcable' LIKE '%' + st.term + '%' 

Или любые другие идеи?

+0

Не работает этот запрос? –

+0

Ну, я должен был проверить его, прежде чем отправляться. Этот запрос не работает, но с CONCAT он делает так: WHERE 'usbcable' LIKE Concat ('%', st.term, '%'). Я думаю, что это самый простой и наиболее релевантный (определенный для моего сайта) способ. – Yisroel

ответ

5

Text Segmentation является частью Natural Language Processing и является тем, что вы ищете в этом конкретном примере. Он используется в поисковых системах и контролерах орфографии, поэтому вам может быть повезло с примером исходного кода, который смотрит на проверки орфографии с открытым исходным кодом и поисковые системы.

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

-Adam

0

Опубликовано в комментариях, но я думал, что это важно воспитать в ответ:

Не работает этот запрос? - Саймон Бучан

Последовал:

Ну, я это проверял, прежде чем я отвечал. Этот запрос не работает, но с CONCAT он делает, например: WHERE 'usbcable' LIKE Concat ('%', st.term, '%'). Я думаю, что это самый простой, и наиболее релевантный (для моего сайта ), путь. - arnie0674

Конечно гораздо проще, чем сегментации текста для этого приложения ...

-Adam

Смежные вопросы