PHP Парсинг текстовое поле для поиска тегов - PullRequest
0 голосов
/ 02 августа 2011

Я создаю онлайн-приложение для часто задаваемых вопросов для своей компании, используя PHP.

Чтобы заполнить базу данных часто задаваемыми вопросами, пользователь должен ввести вопрос, ответ и некоторые теги поиска.

Пользователь ищет систему, вводя свой вопрос в текстовое поле. Кто-нибудь знает какие-либо модули PHP (или JavaScript), которые могут проанализировать вопрос, чтобы найти ключевые слова для использования в поиске SQL?

Например, в вопросе «Что такое компания интернет-политика », выделенные жирным шрифтом элементы будут определены как ключевые слова, чтобы затем их можно было искать в базе данных?

Ответы [ 2 ]

0 голосов
/ 02 августа 2011

Предполагая MySQL, добавьте FULLTEXT индексирование по соответствующим столбцам и используйте полнотекстовый поиск на естественном языке .

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

SELECT id, title, body, MATCH (title, body) AGAINST
('What is the company internet policy') AS score
FROM faq WHERE MATCH (title, body) AGAINST
('What is the company internet policy');
0 голосов
/ 02 августа 2011

Если вы хотите использовать определенные / выбранные ключевые слова для поиска, то, по моему мнению, нет необходимости запрашивать у пользователя теги поиска.Я бы создал две таблицы: одна будет содержать выбранные вами ключевые слова (которые будут содержать только индексированный столбец PRIMARY - который я назову keyword), а другая - всю информацию о ваших часто задаваемых вопросах.Затем PHP будет использовать текстовую строку пользователя для поиска в таблице ключевых слов:

$string = $_POST['search_string'];
$this->db->like('keyword',$string);
$search = $this->db->get('keywords');
if($search->num_rows() > 0){
   $keyword = $search->keyword;
   $this->db->like('faq_content',$keyword);
   $search_faq = $this->db->get('faqs');
   foreach($search_faq->result() as $faq){
      echo "<h2>$faq_title</h2><p>$faq_content</p>";
   }
}

Убедитесь, что вы очищаете значение search_string, прежде чем позволить ему приблизиться к вашей базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...