エンジンの内部動作
このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →
このページでは、クローラーがどのようにページからコンテンツを抽出し、結果をランク付けするかについて詳しく説明します。
クローリング
各クロールは、設定で指定された start_urls の値から開始します。これらのページを読み取り、再帰的にすべてのリンクを抽出してたどり、すべての準拠ページを閲覧するまで続行します。
明示的に sitemap.xml を定義している場合、当社のクローラーは提供されたすべての準拠ページをスクレイピングします。サイトマップの使用を推奨します。これはクロール対象のURLを明示的に公開し、他のページからリンクされていないページが見逃されるのを防ぐためです。
コンテンツの抽出
スクレイパーを使用したレコード構築は非常に直感的です。設定に基づいてウェブページのペイロードを抽出し、データ構造を保持したままインデックス化します。この処理は次のシンプルな方法で実現されます:
-
定義された
selectors_levelに基づき、HTMLフローに沿ってウェブページを上から下に読み取り、レベルに応じて一致する要素を選別します -
各段落とその階層パスに基づいてレコードを作成します。この構築はフロー内での出現順序に基づいています
-
これらのレコードを適切なグローバル設定(メタデータ、タグなど)でインデックス化します
注記: 上記プロセスではスクレイピング中に健全性テストを実行しエラーを検出します。重大な警告がある場合、処理は中止され現在のインデックスが上書きされることはありません。これにより専用インデックスがフラッシュされないよう保護されます
詳細な説明はこちらの専用セクションでご覧いただけます
レコードのランク付け
Algoliaは常にタイブレーク方式を使用して最も関連性の高い結果を最初に返します。DocSearchはまずキーワードの完全一致を検索し、次に部分一致へフォールバックします。その後、selectors から抽出されたページ階層に基づいて再度結果をソートします。
デフォルト戦略では、最上位レベルで一致する単語を持つレコードを優先します。例えば2つの結果が同じ単語に一致する場合、より高いレベル(lvl0)にある方が上位にランクされます。また一致単語の位置も考慮され、HTMLフロー内で早く出現するほどレコードのランクが高くなります。
関連性は複数の要素に基づいており、Algoliaのタイブレーク方式に従ってカスタマイズされます。
URLに応じてページをブーストできます。start_urls の page_rank 属性を使用してください(デフォルト値0の数値)。値が高いほど、一致ページからの結果のランクが上がります。例えば page_rank 5のページはすべて、page_rank 1のページより先に返されます。
設定の custom_settings オプションを使用して、インデックスで使用されるデフォルトの customRanking を上書きすることで関連性戦略を変更することも可能です。