1

検索エンジンを構築しています。通常の RDBMS ではなく、NoSQL のさまざまなキーと値のデータストア、具体的には Amazon SimpleDB を使用しています。Web ページを指す URL のテーブルがあります。特定の英単語を含むページを検索するために使用できる別のテーブルを作成する必要があると思います。

このテーブルの構造は次のとおりです。Search (String word, String URL)私のクエリは次のようになりますselect from Search where word = "foo"

単語を保存して検索する前に、単語をハッシュする必要がありますか? 私はe。テーブルを使用する必要があります: のSearch (String word_hash, String URL)ようなクエリを使用しますselect from Search where word = "acbd18db4cc2f85cedef654fccc4a4d8"

4

2 に答える 2

2

これを演習として行っている場合を除き、独自のものを作成しないでください。スフィンクスなどを使用してください。

これ演習である場合、野心のためのポイント!検索エンジンは大きなプロジェクトです。

自分で単語をハッシュする価値はありません。ハッシュ テーブルは既に内部的にそれを行っています (これはハッシュテーブルです)。後で、基本的なスペル修正を行ったり、たとえば「books」を「book」にも一致させたりすることが必要になる場合があります。その場合、プレーン テキストの単語を使用すると役立ちます。

于 2012-04-10T23:09:02.027 に答える
-1

陪審員は、一般的なケースのためにそこにいます。データベースは内部的にハッシュするように見えますが、重要な反例が間違いなくあります: BigTable では、「com.example.foo/*.html」などの URL キーがクラスター化されて作成されるという特定の利点として挙げられています。 Google 検索インデックスの構築が容易になります。(詳細については、bigtable の論文を参照してください)。

于 2012-06-10T20:11:53.597 に答える