1

MATCH AGAINST3 文字以下の単語を検索できないことに気付きました。そのため、1 つのクエリLIKEに withを追加しました。MATCH AGAINST

検索クエリ: CSS と JavaScript のヒント

データベース エントリ:

id | subject
------------------------------------
1  | ten useful css tricks
------------------------------------
2  | performance tip for javascript

MySQL クエリ:

3 文字の単語: css、tip

SELECT id, MATCH (subject) AGAINST ('css and javascript tip' IN BOOLEAN MODE)
FROM articles WHERE MATCH (subject) AGAINST ('css and javascript tip')
OR subject LIKE '%css%' OR subject LIKE '%tip%'

このクエリは、私のアプリケーション (小規模なデータベース) では問題なく動作します。データベースが大きくなるにつれて問題が発生するかどうかはわかりません。

MATCH AGAINST を使用して 3 文字の単語を検索するには、これが正しい方法ですか? そうでない場合、私が提供した例のように、 cssjavascriptを同時に検索するにはどうすればよいですか?

4

2 に答える 2

1

私は約100Kの行でそれを行い、遅くはありません。選択肢はあると思いますが、私にとってはこれで十分です:)

次に例を示します。

//...
$tokens = explode(' ',$s));
$squery = '';
array_map('trim', $tokens);

foreach($tokens as $token){
    if(strlen($token)>3)
        $squery .= "+$token* ";
    else
        $where .= " AND title LIKE '%$token%'";
if(!empty($squery))
    $select .= " , MATCH (title) AGAINST ('$squery' IN BOOLEAN MODE) AS score "
//...
于 2012-09-21T17:54:28.790 に答える