私は検索エンジン(仮想プロジェクト)を書いています。 パート1。 最初のレンガ

自転車の発明に興味がない場合は、後ろを読んだり、吐いたりしないでください。

問題のメリットについて何か言いたいことがある人は、いつも喜んでいます。

次に、システムを拡張するために必要な主な問題を検討します。



スケーリングを成功させるには、データを含むシステムを基本的な「ブリック」に分割する必要があります。 そのため、このプロセスは可能な限り単純です。 シンプルで、将来の混乱が少なくなります。 成功したパーティションは、他の問題を解決する上でプラスになる場合があります。 詳細なデータ構造により、プロジェクトの最初の段階では考えられなかった新しい問題を解決できるようになったとき、これはすでに私の実践で起こっています。 しかし、正直なところ、この徹底的な研究は基本的な怠inessに基づいていたため、構造全体で気付かれずにレンガを簡単に交換できるように作成されました。

歌詞は終わりました。

私の意見では、検索の主な情報単位はサイトでなければなりません。 どうやら、大規模な検索エンジンがそれを実行します。 Yandexカタログセクションで検索するとき、サイトのグループの検索ではなく、グローバル検索結果のフィルタリングであると想像するのは怖いだけです。 または、Googleが中国の発行をフィルタリングするように設定した場合、必要なサイトを無効化(非)するのではなく、発行を間引くことによって。 ただし、彼が別の「中国語」インデックスを作成しただけでも驚くことはありません。

だから。 インデックスのストレージとサイトごとにインデックスにアクセスする機能を提供するものは何ですか?

1.個々のサイトに検索サービスを提供する機能。 大規模な検索エンジンには別のサイトでの検索制限がありますが、何らかの理由でサイト自体はこれを使用せず、ローカル検索エンジンを設定することを好みます。 少なくともこの市場(ローカル検索エンジン)が存在し、相互利益のために使用することができます-機能のテストと実行のためのプラットフォーム。

2. Yandexカタログなどのサイトのグループを検索する機能。 この考え方は新しいものではありませんが、無関係になることはほとんどありません。

3.検索から不要なサイトを除外する機能。 たとえば、子供が使用できる「家族検索」。 偶然にも、問題のポルノサイトが表示されている場合でも、親の1人が望んでいることはほとんどありません。

つまり インデックスのサイトごとの組織は、包括的および排他的なフィルタリング(個々のサイトまたはグループ全体の包含および除外)のための十分な機会を提供します。

4.この考えはおそらく最も思慮深いものです-バックアップは必要ありません! バックアップの代わりに、ゼロからインデックスの構築を開始します。 バックアップの復元よりも時間がかかりますが、ハードウェアコストは削減されます。 結局、インデックスの2番目のコピーを実際に保持する必要はありません。 別のサイトで作業している間、これはそれほど面倒ではありません。 しかし、ボリュームの増加に伴い、バックアップストレージとサポートの問題も同様のペースで増加します。

バックアップを完全に拒否するつもりはありません。 しかし、これは重要な領域-主要なガイドとインデックス-に対してのみ行います。 第一に、このデータの量ははるかに少なく、第二に、それらの損失は真の災害です。

5.モビリティ。 インデックスの一部を別のサーバーに転送するのは迅速かつ簡単です。これにより、マシンパークの更新プロセスが大幅に容易になります。 これは、プロジェクトを長期間開発する場合です。



別のサーバーに配置するこのようなインデックスブリックの数は、リソースの可用性に応じて決定されます。これは次のトピックです。



PS。 サイトインデックスが1つのサーバーに対して大きすぎる場合の対処方法については検討していません。

まず、そのようなサイトはあまり多くないので、アプローチするときにそれについて考えることができます。

第二に、この問題はメインシステムの動作を妨げることなく、またその変更を混乱させることなく並行して解決できます。



UPDT:

サイトがエンドツーエンドの検索だけでなく、1つ以上のセクションに制限する機能を整理する場合のオプションは、通常、提案された構造に該当します。 スキームsite-group_site_group-group_group -...-すべてがスキームgroup-group_group_group -....- siteに置き換えられます。

これとそれの両方に共通名-階層構造があります。 主なもの-固有の基本的な制限は何ですか? ネストレベルの数、1つのセクションにいくつの子ノードを含めることができますか? 制限がないと柔軟性が得られますが、作業の速度に影響します。 リジッドフレームを使用すると、固定長のリストを操作できるため、作業が高速化されます。 主なタスクは、ほとんどの場合に適合するような制限を提案することです。 アイデアを開発していただきありがとうございます。



All Articles