0

ユーザーがテキストボックスに質問を入力すると、データベースから質問を検索する基本的なクエリを以下に示します。

$questionquery = "SELECT QuestionContent FROM Question
  WHERE(QuestionContent = '".mysql_real_escape_string($questioncontent)."');

上記のクエリは、質問を見つけるために実際には実用的ではありません。ユーザーは、質問を見つけるために質問全体を正しく入力する必要があります。

データベースから質問内の単語を検索するために LIKE を使用してキーワード検索を実行したくありません。代わりに、クエリを使用してセマンティック検索を実行できるようにして、テキスト ボックスに入力されたフレーズの意味を見つけられるようにしたいと考えています。

これがクエリで実行できるかどうかを知っている人はいますか?

ありがとう

4

1 に答える 1

2

MySQLでの自然言語全文検索のサポートが役立つ場合があります。ただし、検索を実行する列にFULLTEXTのインデックスを付ける必要があり、データベースエンジンはMyISAMである必要があります。

create index `question_content_fulltext` on Question FULLTEXT (`QuestionContent`);

次に、次のようなクエリを使用して、列に対して自然言語検索を実行できます。

$questionquery = "SELECT * FROM Question WHERE MATCH (QuestionContent) AGAINST ('"mysql_real_escape_string($questioncontent)"')";

詳細については、自然言語全文検索に関するMySQLのドキュメントを参照してください。

于 2012-05-22T23:24:09.957 に答える