ホームページ  >  記事  >  バックエンド開発  >  検索クエリを作成するときに単語を分割するにはどうすればよいですか?

検索クエリを作成するときに単語を分割するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 13:40:571325ブラウズ

例えば
商品タイトル
フィールドタイトル
秋冬新作 大きいサイズ レディース ゆったり セーター ジャケット レディース カーディガン 厚手 ミドル丈 ウール
商品レビュー
フィールド内容
秋冬に室内で着ても快適で、ファッション性も高い外出するときは綿の羽毛のベストを着ます。 Aラインのスカートスタイルで、ウエストやお腹周りの脂肪をカバーできます。肩の耐荷重能力は、織りデザインの点でアップグレードに値します。アームホール周りは細くて細く、袖丈も短く、身頃の豊かさに比べて素材が粗末です。そのため裏地はノースリーブか薄手のシャツのみ着用可能です。私は159cm、135g、胸囲103cm、肩幅39cm、腕周り35cmです、参考までに。赤ちゃんが「一水着」にならないよう、縮み率がとても心配です。


大きいサイズのウールジャケットを検索

大きいサイズのウールの快適なスタイルを検索
これをどのように実装するかを考え始めたのは、キーワードを '%' ずつ抽出することでした。 .$wd.' %'?それは同時に実現できません。




ディスカッションへの返信 (解決策)

MySQL には正規表現による検索機能があるのですが、それを使用しないのはなぜでしょうか。

$word = '大码 羊毛 外套';$word = preg_replace('/\s+/', '|' ,trim($word));$sql = "select * from tbl_name where concat(title,content) REGEXP '$word'";

条件が許せば、サードパーティの全文検索ドライバーを使用する方が効率的です

順序の問題があるため、同時に含めることは困難です

サイズが大きいですが。*ウールは片道です
ただしウール ※大きいサイズもありますか?

MySQL の正規表現は比較的単純で、php のような書き方はサポートされていません

$s = '秋冬新款大码女装宽松毛衣外套女开衫加厚中长款羊毛';$p = '/(?=.*羊毛)(?=.*大码).*/';echo preg_match($p, $s); //1 匹配成功


本来は簡単にするためのものですが、複雑にするのは退屈です

順序の問題があるので同時に行うのは難しいです





大きいサイズ*ウールはワンウェイですが
でもウール*大きいサイズも可能ですか?

MySQL の正規表現は比較的単純で、php のような書き方はサポートされていません
$s = '秋冬新款大码女装宽松毛衣外套女开衫加厚中长款羊毛';$p = '/(?=.*羊毛)(?=.*大码).*/';echo preg_match($p, $s); //1 匹配成功


元々は簡単にするためのものですが、複雑になると退屈です

Banban ID ソートを追加するとクエリ時間が 0.3 から急上昇するのはなぜですか? 1.8にする方法はありますか?


注文の問題があるので同時にするのは難しいです
ラージサイズ*ウールは一方通行ですが
ウール*ラージサイズも可能ですか?

MySQL の正規表現は比較的単純で、php のような書き方はサポートされていません

もともと簡単にするためのものですが、複雑になると退屈です

速度は 13 秒でかなり良いです。データを ID で並べ替えるのはなぜ遅いのですか? 理解できません🎜 勉強になりました🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。