2017-10-02 14 views
-3

私は非常に大きなデータベース(2 000 000行以上)を検索していると私はそれが速くしたいPHPのmysql検索スクリプトをやっています。私は、それがスペルチェックとスマートな単語の検出を持っていて、ユーザーの入力がフーンまたはhponeのときに電話を照会したいと思っています。だから私が見つけた最も良い方法はREGEXPです。しかし、私は複雑な表現とmysqlとregexpを使用すると、それは一種の遅いです。私に助言がありますか?これはあなたが説明したもののために検索を実行することができます https://dev.mysql.com/doc/refman/5.7/en/fulltext-search.htmlPHPのmysqlの検索アドバイス

:phroneため 正規表現の例では、このドキュメントをお読みください電話

[a-zA-Z]*[phrone]{3,}[a-zA-Z]{3,} 
+0

私は、regexpがその問題のために行くあなたの方法だとは思わない。あいまい検索を見てください。 (ただの一般的なアドバイス。私はmysqlを使ってこれを実装する方法がわかりません) – SilverNak

+1

データベーステーブルの例を教えてください。 –

+0

最初の文字を最初に選択できますか?つまり、ユーザーが "a"を押すと、最初に "a"で始まるvarcharsを選択して正規表現を実行します –

答えて

2

と一致します。 より多くのパワーと機能が必要な場合は、elasticsearchや他の検索エンジン(SOLR)を使用してください、彼らは驚くほど速く、より多くの機能があります。

+0

良いアイデアだけど、それはかなりスマートにしたいので、私はこれが素晴らしいとは思わない。私は辞書を使うと思った。すべての単語を含み、最も近いものを選択するtxtファイル – user8708554

+0

たとえば、ユーザー入力がphondeの場合、どのようにしてFULLTEXTで電話を選択できますか? – user8708554

+1

@ user8708554 SOLRやElasticのような既存のソリューションよりも優れたソリューションを一緒にハッキングする可能性は非常に低いです。 – tadman