У меня есть "рассказы" с несколькими историями. Соответствующими столбцами являются "title" и "storyBody". Я создал веб-страницу, где пользователи могут задавать вопросы о свободной форме... например "как я могу защитить свою конфиденциальность?".
Каков наилучший подход MySQL, который можно использовать для извлечения группы из 5 или около того историй, которые могли бы наилучшим образом касаться вопроса?
Я рассматриваю что-то вроде этого:
SELECT * FROM stories
WHERE MATCH (title, storyBody)
AGAINST ('how can I protect my privacy?' IN NATURAL LANGUAGE MODE);
Является ли NATURAL LANGUAGE лучше BOOLEAN?
Будь лучше BOOLEAN
или NATURAL LANGUAGE
- это то, что вам нужно будет решить, исходя из потребностей вашего приложения (или, если вы хотите выполнить поиск по расширению запроса). Разумеется, вы также можете разгрузить ответственность за поиск другим инструментом, таким как Lucene, или переключиться на другую СУБД с (возможно) лучшими возможностями полнотекстового поиска, такими как Postgres (поддерживает вывод, n-граммы и т.д.),