現在、SNOMEDという医療用語を中心としたプロジェクトに取り組んでいます。眠っているの中心には、長さが350,000,1.1 mil、1.3 milの3つのリレーショナルデータセットがあります。私たちは、このデータセットを、データ補完部分のためにすばやく照会できるようにしたいと考えています。ここでは、自動補完/提案の形や形をしたいと考えています。大規模なデータセットの高速検索を実現する:MySQL MEMORY(HEAP)、Memcached、またはその他
現在のところ、開発者向けのMySQL MyISAM DBにありますが、いくつかのメモリオプションで再生を開始したいと考えています。現在、インデックスを含めて30MB + 90MB + 70MBのサイズです。 MEMORY MySQLエンジンとMemCachedは明白なものでしたので、私の質問は、これらのうちどれを提案するのか、そこに何か良い点がありますか?
私たちは、違いがある場合は主にアプリレベルでPythonで作業しています。まもなく4GB DDR2に移行する単一の小型専用サーバー上で実行しています。
編集:追加情報
我々は示唆して自動補完、高速を維持するのに興味を持っています。これらのタイプのキューにはうまくいくものが望ましいです。 snomedの各用語には、通常、いくつかの同義語、略語、および好ましい名前があります。このデータセットを大量に検索しています(インデックスを含むサイズが90MB)。物事をスピードアップし、より関連性の高い結果を返すために逆索引を作成することも検討しています(用語の多くは長く「デコレーション・バサリス(体の構造)の全体的なコイル状動脈」です)。 Luceneやその他の全文検索が適切かもしれません。
解決しようとしている問題は何ですか?現在のディスクベースのルックアップは遅いですか?あなたはMySQLを使用してそれらをプロファイルできますか?自動補完ビットを速くしますか?その後、Sphinx/LuceneなどのFTSエンジンが必要になることがあります。あなたのケースのための適切なアーキテクチャは、特定の要件に応じて変更される可能性があります。 –
これらの詳細の編集を参照してください。残念ながら、私はLuceneまたは類似の製品で多くの経験を持っていません。それに関するリンクや文献は高く評価されています。 – nategood