Docs Menu
Docs Home
/
MongoDB Atlas
/ /

Atlas Search エラーのトラブルシューティング

項目一覧

  • 最初の同期が進行中
  • mongot プロセスがインストールまたは実行されていない
  • 空の結果セット
  • PlanExecutor エラー
  • Failed to Execute search Command エラー

Atlas Search は、次のシナリオで最初の同期プロセスを開始します。

  • 新しいクラスターを作成するか、クラスターに対して特定のアップグレードを実行すると、最初の同期プロセスが発生します。

  • 既存の Atlas Search インデックスを持つコレクションにシャードを追加すると、そのインデックスの追加されたシャードで最初の同期が行われます。

  • Atlas Search インデックスが既に存在するコレクションをシャード化する場合、コレクションが存在し始めるシャードで最初の同期が行われます。

最初の同期プロセスには、次の手順が含まれます。

  1. mongodは最初の同期を実行します。

  2. mongotは最初の同期を実行し、検索インデックスを再構築します。

検索インデックスの再ビルド中も、既存のインデックス作成フィールドに対して$searchクエリを実行できます。 ただし、新しいフィールドまたは最近作成したノードに対して$searchクエリを実行すると、Atlas Search ではエラーが返される場合があります。 最初の同期が完了し、 mongotがインデックスを再構築した後に、クエリを再度試してください。 mongotの最初の同期のステータスを確認するには、次の手順を使用します。

1
  1. まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー

  2. まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。

  3. まだ表示されていない場合は、サイドバーの Clusters をクリックしてください。

    [ クラスター]ページが表示されます。

2

GoAtlas Searchページには、サイドバー、Data Explorer 、またはクラスターの詳細ページから できます。

  1. サイドバーで、 Services見出しの下のAtlas Searchをクリックします。

  2. [ Select data sourceドロップダウンからクラスターを選択し、[ Go to Atlas Search ] をクリックします。

    Atlas Searchページが表示されます。

  1. クラスターの [Browse Collections] ボタンをクリックします。

  2. データベースを展開し、コレクションを選択します。

  3. コレクションのSearch Indexesタブをクリックします。

    Atlas Searchページが表示されます。

  1. クラスタの名前をクリックします。

  2. [Atlas Search] タブをクリックします。

    Atlas Searchページが表示されます。

3
  1. インデックスのStatus列で、 View Status Detailsをクリックします。

  2. ノードのインデックスの状態を確認します。 mongotの最初の同期中のステータスはINITIAL SYNCです。 mongotがインデックスの再ビルドを完了すると、ステータスはACTIVEになります。

Atlas Search mongotプロセスがインストールまたは実行されていない場合に$searchクエリを実行すると、次のエラーが返されます。

MongoError: Remote error from mongot :: caused by :: Error connecting to localhost:28000.

mongotプロセスは、最初の Atlas Search インデックスが定義されているときにのみインストールされます。 Atlas クラスターに Atlas Search インデックスがない場合は、このエラーを解決するために少なくとも 1 つの Atlas Search インデックスを作成してください。

Tip

以下も参照してください。

  • Atlas Search インデックス構文の確認

  • Atlas Search インデックスの作成

mongot はエラーを返しませんが、 $searchクエリが次の場合には空の結果セットを返します。

  • 存在しないインデックスを参照します。 クエリでインデックス名を指定しない場合、Atlas Search はデフォルトでdefaultという名前のインデックスを使用します。 defaultという名前のインデックスがない場合、または指定したインデックスが存在しない場合、Atlas Search はエラーを返さず、空の結果セットを返します。 indexオプションを使用して、名前で有効なインデックスを指定できます。 詳細については、「 Atlas Search集計パイプラインステージのオプション 」を参照してください。

  • インデックスのないフィールドを指定します。 インデックスがないフィールドに対してクエリを実行した場合、Atlas Search はエラーを返さず、空の結果セットを返します。 pathパラメータの値としてインデックス付きフィールドのみを指定する必要があります。 コレクションのインデックス定義で動的マッピングを有効にすると、コレクション内のすべての動的にインデックス作成可能なフィールドが自動的にインデックス化されます。 詳しくは、動的マッピング を参照してください。

  • stringタイプとしてインデックスされていないフィールドパスでtext演算子を使用します。 フィールドがstring以外の Atlas Search フィールドタイプstringFacetautocompleteなど)としてインデックス付けされている場合、Atlas Search はエラーを返さず、空の結果セットを返します。 テキスト 演算子を使用してフィールドをクエリするには、 BSON データ型の値を string としてインデックス化する 必要 があります。string

mongot は、 $searchクエリが次の場合にPlanExecutorエラーを返します。

  • 誤ったデータ型としてインデックス付けされたフィールドを指定します。 この場合、 クエリを実行すると、Atlas Search は、誤ってインデックスが作成されたフィールドとその正しいデータ型を識別するエラー メッセージを返します。 例:

    PlanExecutor error during aggregation :: caused by :: Cannot facet on field "genres" because
    it was not indexed as a "stringFacet" field.

    たとえば、 stringnumber 、またはdateフィールドに対してファセットクエリを実行するには、それぞれstringFacetnumberFacetdateFacetなどの対応する Atlas Search フィールドタイプを使用してフィールドのインデックスを作成します。 。 詳細については、「サポートされているデータ型とサポートされていないデータ型 」を参照してください。

mongotmongodと並行して実行するように配置した場合(つまり、 ワークロード分離用の検索ノードを構成しなかった場合 )、次のいずれかのイベントが発生した場合などにmongotプロセスが終了すると、 mongotはこのエラーを返す可能性があります。

  • クラスターのアップスケール

  • ノード フェイルオーバー

  • mongot アップグレード

専用検索ノードにmongotを配置した場合、 mongodは各検索ノードを認識するプロキシを使用するため、 mongodは検索クエリを、 mongotがアクティブな正常なノードのみにルーティングします。

戻る

タイミングを説明する