3

80,000 行のデータベースがあり、いくつかの FULLTEXT クエリをテストしていたときに、予期しない結果に遭遇しました。MYSQL からストップワードを削除し、最小単語長を 3 に設定しました。

このクエリを実行すると:

SELECT `sentence`, MATCH (`sentence`) AGAINST ('CAN YOU FLY') AS `relevance`
FROM `sentences`
WHERE MATCH (`sentence`) AGAINST ('CAN YOU FLY')
ORDER BY `relevance` DESC

次の結果が得られます。

NO A FLY WITHOUT WINGS WOULD BE CALLED A WINGLESS | 10.623517036438
I CAN FLY                                         | 7.61278629302979
I CAN FLY :)                                      | 7.61278629302979
CAN YOU FLY?                                      | 7.61278629302979
THEY CAN FLY                                      | 7.61278629302979
YOU AM NOT FLY                                    | 7.61278629302979
CAN YOU FLY                                       | 7.61278629302979
HAVE YOU EVER SWALLOWED A FLY?                    | 7.52720737457275
I JUST WANNA FLY                                  | 7.52720737457275

「NO A FLY WITHOUT WINGS WOULD BE CALLED A WINGLESS」の関連性が最も高いのはなぜですか。単語の 1 つしか含まれていません。

最も一致したキーワードで並べ替え、次に最も順序が高いもので並べ替え、次に最も少ない単語で並べ替えたいと思います。これにより、論理的な結果が得られます。

CAN YOU FLY
CAN YOU FLY?
I CAN FLY
THEY CAN FLY
I CAN FLY :)
YOU AM NOT FLY
HAVE YOU EVER SWALLOWED A FLY?
I JUST WANNA FLY
NO A FLY WITHOUT WINGS WOULD BE CALLED A WINGLESS
4

1 に答える 1