0

あなたの意見が必要です... PHP & MYSQL (AZURE 環境) でアプリケーションを開発しています。アプリケーション用に MYSQL で検索エンジンを作成しました。検索エンジンはページをインデックス化する必要があります。各ページは単語に「分割」され、単語ごとに、その単語が表示されるすべてのアドレスを含むテーブルが作成されます。

たとえば、クライアントが「タブレット」という単語を探している場合、アプリは「タブレット」というテーブルにアクセスし、テーブル内のすべてのアドレスを抽出します。2 つの単語を検索する場合は、すべてのアドレスを 2 つの関連するテーブルから取得し、各アドレスの切り取りを実行します。

問題は、少なくとも 10,000 ワード、つまり 10,000 テーブルがあることです。多数のテーブルがある DATABASE に問題はありますか? マイクロソフトのクラウドサーバー(AZURE)を利用することで改善されるのでしょうか?DATABASE はクラウドにテーブルを割り当てるように書いていますか、それとも単にテーブルを作成し、クラウドがこれを処理して私に代わって配置しますか?

4

2 に答える 2

0

インデックス作成を行うソリューションを検討する必要があります。Apache Luceneはその1つですhttp://lucene.apache.org/core/PHPを使用している場合は、この言語での実装もあります(framework.zend.com)

SphinxSearchhttp ://sphinxsearch.comの使用もお勧めします。これは、インデックス作成を行うための優れたツールです。DBからのデータにインデックスを付け、ANSISQLでクエリできるインターフェイスも提供します。

于 2012-10-30T21:00:59.070 に答える
0

あなたがしていることは、逆索引パターンがすでに行っていることを複製することです。オープン ソースである非常に成熟したインデックスの実装については、Lucene (java) または lucene.net (.net) を参照する必要があります。

上記のコメントで述べたように、各単語 (lucene では用語と呼ばれる) のテーブルを持つことはスケーリングできません。

于 2012-10-30T20:56:17.640 に答える