sql >> データベース >  >> RDS >> Mysql

MySQL:フルテキストでスコアが常に1になるのはなぜですか?

    BOOLEAN MODEは、バイナリ回答のみをサポートします。つまり、検索文字列が列に表示されるかどうかに関係なく、0または1を意味します。重みを計算するための小数の結果を取得するには、インデックス付きの列に対して一致を使用する必要があります。

    この方法でブールモードを使用して、次のいずれかの重量を取得できます。

    SELECT *, ((1.3 * (MATCH(column1) AGAINST ('query' IN BOOLEAN MODE))) +
    (0.6 * (MATCH(column2) AGAINST ('query' IN BOOLEAN MODE)))) AS relevance
    FROM table WHERE ( MATCH(column1,column2) AGAINST
    ('query' IN BOOLEAN MODE) ) ORDER BY relevance DESC
    

    ブールモードの利点は、インデックス付けされていない列で使用できることですが、結果として0,1の場合のみ、非ブールモードは10進数の結果を返しますが、インデックス付きの列にのみ適用できます...こちら 。



    1. mysqlcsvファイルのインポート中にCSV入力の列数が無効です

    2. psql \ copyを使用してタイムスタンプ列(dd.mm.yyyy hh.mm.ss)を含む.csvをインポートする

    3. SQL Server-挿入された行のIDを取得する最良の方法は?

    4. 1つの選択を使用してMySQLの時差を計算する方法はありますか