MySQL データベースには約 2000 行あります。
各行は最大 300 文字で、1 つまたは 2 つの文が含まれます。
これらの行を検索するには、mysql の組み込みフルテキスト検索を使用します。
可能であれば、タイプミスや誤ったスペルミスを修正できる機能を追加したいと思います。
たとえば、誰かが検索ボックスに「right shlder」と入力すると、検索を実行すると「right shoulder」と表示されます。
この種の機能を追加する最も簡単な方法について、何か提案はありますか? lucene のような外部検索エンジンを追加する価値はありますか? (このような小さなデータセットの場合、これはやり過ぎのようです。) または、もっと簡単な方法はありますか?
ベストアンサー1
SOUNDS LIKE
またはを使うべきだと思いますSOUNDEX()
データ セットが非常に小さいため、1 つの解決策としては、各テキスト フィールドに含まれる個々の単語または soundex 値を格納する新しいテーブルを作成し、そのテーブルで SOUNDS LIKE を使用することが考えられます。
例えば:
SELECT * FROM table where id IN
(
SELECT refid FROM tableofwords
WHERE column SOUNDS LIKE 'right' OR column SOUNDS LIKE 'shlder'
)
見る:http://dev.mysql.com/doc/refman/5.0/en/string-functions.html
文字列をワイルドカードで検索することはできないと思います:(