Как сделать нечеткую логику для функции поиска в PHP и SQL Server? - PullRequest
0 голосов
/ 12 октября 2018

Я работаю над веб-страницей, связанной с моей базой данных, в которой в качестве основной функции используется функция поиска.Пользователи должны искать название компании, чтобы проверить, к какой группе принадлежит компания и т. Д. Однако для скрининга названия компании мне нужна нечеткая логика поиска.Я перепробовал много методов, но проблема в том, что названия компаний длинные.Я использовал WHERE NAME LIKE %keywordfromform%, но это не достаточно размыто.

Например:

Факт: ABC Company 123 ROAD
Поиск пользователя: Road 123 ABC Company

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

1 Ответ

0 голосов
/ 12 октября 2018

факт: "ABC Company 123 ROAD"
user = "Road 123 ABC Company" используйте explode или preg_split для разбиения строки в массив.Поскольку вы не знаете порядок, было бы лучше разбить строку запроса и выполнить поиск по слову, а не искать всю строку.

Если вам нужно any из слов

   SELECT * FROM table
   WHERE column LIKE '%word1%'
   OR column1 LIKE '%word2%'
   OR column1 LIKE '%word3%'

Если вам нужно all присутствующих слов

   SELECT * FROM table
   WHERE column LIKE '%word1%'
   AND column1 LIKE '%word2%'
   AND column1 LIKE '%word3%'
...