1

行のタイトル列に従って同様の行を選択したい。タイトルの列には、ほとんどの場合、5 つまたは 6 つのキーワードが含まれています。どのアルゴリズムをお勧めしますか? たぶん?

PS: タイトル列には、Ç、Ö、Ş などの Unicode 文字があります...

4

3 に答える 3

2

私の質問の回答mysql全文検索。ユニコードにも対応。

    SELECT *, match(project_title) against('sample project 55') as similarity
    FROM projects
    WHERE status IN(1, 2, 3, 4, 5, 6) AND id != ? AND match('sample project 55') against(?)
    ORDER BY similarity DESC
于 2010-07-09T00:35:01.230 に答える
0

スペルと発音が似ているということであれば、その機能の使用を検討したいと思いますSOUNDEX

于 2010-07-03T01:20:20.320 に答える
0

正直なところ、私は のテーブルを作成し、keywords(id, external_id, keyword)そのテーブルをそれ自体に対して結合し、一致する数で並べ替えてから、行を取得します。

1 つの行に対して照合する場合は、結合の効率を大幅に向上させるために、その行のみを選択できます。

これを SOUNDEX と組み合わせて、近いものを一致させることができます。

于 2010-07-03T01:21:59.330 に答える