0

私の webapp には、約 20 万語の単語リスト ファイルが必要です。たとえば、「clo」などの特定の部分文字列で始まる単語を表示したいと考えています。それをデータベースに保存し、簡単なクエリでアクセスする必要がありますか? この単語リストからツリーを作成してキャッシュに保存し、このツリーを検索して適切な単語を見つけることを考えました。私の意見では、特に 1 分あたりのリクエスト数が多い場合は、これがより良い解決策になるはずです。この問題を最も効率的な方法でどのように解決しますか?

4

1 に答える 1

1

私はトライで行きます; Ruzzleソルバープログラム用にC++でこのようなソリューションを実装しましたが、非常に効率的であることを確認できます。ただし、Pythonでは、Pythonが次のようなトライノードに相当するため、パフォーマンスが低下することは間違いありません。

class AlphaTrie
{
    // Pointers for the next trie nodes
    std::auto_ptr<AlphaTrie> next[26];
    // true if the current node marks the end of a word
    bool final;
    // ...
};

含まれるデータ構造はそれほど重要ではなく(たとえば、Pythonリストへのアクセスは、ノードに直接格納されている「ダム」C配列よりも低速です)、オーバーヘッドが大きくなります。

于 2013-03-02T15:26:37.700 に答える