Поиск значения во входной строке в базе данных MySQL - PullRequest
1 голос
/ 28 февраля 2011

У меня есть база данных должностных инструкций, и мне нужно сопоставить эти описания с максимально возможным количеством списков вакансий.В моей базе данных у меня есть основное название должности в качестве ключа (например, Aircraft Pilot) и несколько альтернативных названий (Jet Pilot, Airliner Captain и т. Д.).

Моя проблема в том, что во многих описанияхЯ должен обработать, заголовок содержит слишком много информации - например, заголовок из списка может быть "747 Aircraft Pilot".

Хотя я знаю, что не могу получить 100% -ную точность при таком подходе,будет ли для меня способ сопоставить что-то вроде «747 Aircraft Pilot» с моим описанием «Aircraft Pilot», не выполняя поиск по каждой комбинации слов в строке?Например, существует ли алгоритм, который бы назначал процент совпадения между двумя строками и возвращал все пары с определенным процентом совпадения, например?

1 Ответ

1 голос
/ 28 февраля 2011

Вы можете использовать функцию полнотекстового поиска в MySQL.Хороший учебник можно найти здесь:

http://devzone.zend.com/article/1304

http://forge.mysql.com/w/images/c/c5/Fulltext.pdf

При добавлении полнотекстового индекса с помощью

ALTER TABLE jobs ADD FULLTEXT(body, title);

Вы можете сделатьзапрос, как это:

mysql> SELECT id, title, MATCH (title,body) AGAINST
    -> ('Aircraft Pilot')
-> AS score
-> FROM jobs WHERE MATCH (title,body) AGAINST
-> ('Aircraft Pilot');
+-----------------------------+------------------+
| id | title                  | score            |
+-----------------------------+------------------+
|  4 | 747 Aircraft Pilot ... | 1.5055546709332  |
|  6 | Aircraft Captain   ... |   1.31140957288  |
+-----------------------------+------------------+
2 rows in set (0.00 sec)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...