0

ファイル パス検索があり、ユーザーは Web サイトで自分のファイルを検索できます。エントリの例は次のとおりです。

`path`
- /Volumes/Fulfill/03-01-13/FILFILE.txt
- /Volumes/Master/.Trash/Weeds.mov

誰かが「master mov」を検索すると、次のクエリが実行されます。

SELECT * FROM files WHERE path LIKE '%master%' AND path LIKE '%mov%'

そして戻ります:

- /Volumes/Master/.Trash/Weeds.mov

上記の検索を行うためのより良い方法または方法は何ですか?

更新:次のことを試しましたが、MYISAM FULLTEXT検索の実装がまったくうまくいきませんでした:

select * from path where path like '%red%' and path like '%state%' <-- works
select * from path where match(path) against ('red state'); <-- zero results

上記以外に全文検索を実装する別の方法はありますか?

4

1 に答える 1

1

%はワイルドカードです。次のようなものに置き換えると、より高速になります。

SELECT * FROM files WHERE path LIKE '/Volumes/Master%mov'

それ以上の条件をチェックしていないからです。

アップデート

フルテキストオプションの場合、(1回)

ALTER TABLE files ADD FULLTEXT(path);

次に、検索のためにあなたは

SELECT * FROM files
WHERE MATCH (path)
AGAINST ('+Master +mov' IN BOOLEAN MODE);

短い単語は無視され、デフォルトの最小長は4文字です。変数ft_min_word_lenおよびft_max_word_lenを使用して、最小および最大の単語長を変更できます。

于 2013-03-22T23:34:44.953 に答える