たとえば、「誠実」というキーワードを入力すると、「私はあなたに本当に心を捧げました」という文を検索できます。これを実現するには、PHP をどのように使用すればよいでしょうか?専門家の回答をお願いします。
それを実装するために何を使用するかによって異なります
データベースであれば、データ量が大きくないので、次のように使用できます
それは何を使用するかによって異なりますを使用して実装します
データベースの場合 データ量が多くなければ
何を使用して実装するかによって異なります
データベースの場合、データ量が大きくない場合は、 like を使用できます
テーブルを追加して、フィールド
関連する ID、キーワード
データが追加および変更されると、PHP はシソーラスをループします。これらの単語がある場合は、これらの単語をこのテーブルに入力し、検索時にこのテーブルを検索します
最も基本的な SQL ファジー クエリ
$ar = preg_split("//u", '真心', -1, PREG_SPLIT_NO_EMPTY);$where =array();foreach($ar as $v) $where[]=" 字段 like '%$v%'";$sql="select * from tt " ;$sql .= empty($where) ? '' : ' where ' . join(' and ', $where); echo $sql;
上の階に書かれているものはもう少し複雑ですが、一般的です
実際には、キーワードをループしてそれぞれ LIKE で分割することです
WHERE KWORD LIKE '%True%' と KWORD LIKE '%heart%' This両方の単語が一致する場合にのみ見つかります。ここでは、kwordが「%true%」またはkwordが「%心%」のようなものである場合にのみ見つかります。 「true」ですべてのフィールドを検索しますか? はい: このフィールドに「true」という単語が 1 つだけ含まれている場合、このフィールドは検索されません。たとえば、「とても気に入っています」は検索されません。ご機嫌です」と検索しても出てきません。
例: 私はそれがとても好きです。この文は検索されます。または、「私は本当にあなたに心を捧げました」という文も検索されます。
http://www.staples.cn/word/%E6%96%87%E4%BB%B6%E9%80%8F%E6% 98%8E
テーブル、フィールド
関連する ID、キーワード
を追加します。 データが追加および変更されると、PHP はこれらの単語をこのテーブルに入れて検索します。このテーブル
$ar = preg_split("//u", '真心', -1, PREG_SPLIT_NO_EMPTY);$where =array();foreach($ar as $v) $where[]=" 字段 like '%$v%'";$sql="select * from tt " ;$sql .= empty($where) ? '' : ' where ' . join(' and ', $where); echo $sql;
事務用品販売サイトで商品を検索する際に利用していたのですが、今回この問題に遭遇しました。
まずは試してみませんか?