Atlas Search エラーのトラブルシューティング
項目一覧
最初の同期が進行中
Atlas Search は、次のシナリオで最初の同期プロセスを開始します。
新しいクラスターを作成するか、クラスターに対して特定のアップグレードを実行すると、最初の同期プロセスが発生します。
既存の Atlas Search インデックスを持つコレクションにシャードを追加すると、そのインデックスの追加されたシャードで最初の同期が行われます。
Atlas Search インデックスが既に存在するコレクションをシャード化する場合、コレクションが存在し始めるシャードで最初の同期が行われます。
最初の同期プロセスには、次の手順が含まれます。
mongod
は最初の同期を実行します。mongot
は最初の同期を実行し、検索インデックスを再構築します。
検索インデックスの再ビルド中も、既存のインデックス作成フィールドに対して$search
クエリを実行できます。 ただし、新しいフィールドまたは最近作成したノードに対して$search
クエリを実行すると、Atlas Search ではエラーが返される場合があります。 最初の同期が完了し、 mongot
がインデックスを再構築した後に、クエリを再度試してください。 mongot
の最初の同期のステータスを確認するには、次の手順を使用します。
Atlas Atlasで、プロジェクトの {0 ページにGoします。GoClusters
まだ表示されていない場合は、希望するプロジェクトを含む組織を選択しますナビゲーション バーのOrganizationsメニュー
まだ表示されていない場合は、ナビゲーション バーのProjectsメニューから目的のプロジェクトを選択します。
まだ表示されていない場合は、サイドバーの Clusters をクリックしてください。
[ クラスター]ページが表示されます。
GoAtlas Searchクラスターの ページに します。
GoAtlas Searchページには、サイドバー、Data Explorer 、またはクラスターの詳細ページから できます。
サイドバーで、 Services見出しの下のAtlas Searchをクリックします。
[ Select data sourceドロップダウンからクラスターを選択し、[ Go to Atlas Search ] をクリックします。
Atlas Searchページが表示されます。
クラスターの [Browse Collections] ボタンをクリックします。
データベースを展開し、コレクションを選択します。
コレクションのSearch Indexesタブをクリックします。
Atlas Searchページが表示されます。
クラスタの名前をクリックします。
[Atlas Search] タブをクリックします。
Atlas Searchページが表示されます。
mongot
プロセスがインストールまたは実行されていない
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 インデックスを作成してください。
空の結果セット
mongot
はエラーを返しませんが、 $search
クエリが次の場合には空の結果セットを返します。
存在しないインデックスを参照します。 クエリでインデックス名を指定しない場合、Atlas Search はデフォルトで
default
という名前のインデックスを使用します。default
という名前のインデックスがない場合、または指定したインデックスが存在しない場合、Atlas Search はエラーを返さず、空の結果セットを返します。index
オプションを使用して、名前で有効なインデックスを指定できます。 詳細については、「 Atlas Search集計パイプラインステージのオプション 」を参照してください。インデックスのないフィールドを指定します。 インデックスがないフィールドに対してクエリを実行した場合、Atlas Search はエラーを返さず、空の結果セットを返します。
path
パラメータの値としてインデックス付きフィールドのみを指定する必要があります。 コレクションのインデックス定義で動的マッピングを有効にすると、コレクション内のすべての動的にインデックス作成可能なフィールドが自動的にインデックス化されます。 詳しくは、動的マッピング を参照してください。string
タイプとしてインデックスされていないフィールドパスでtext
演算子を使用します。 フィールドがstring
以外の Atlas Search フィールドタイプstringFacet
やautocomplete
など)としてインデックス付けされている場合、Atlas Search はエラーを返さず、空の結果セットを返します。 テキスト 演算子を使用してフィールドをクエリするには、 BSON データ型の値を string としてインデックス化する 必要 があります。string
PlanExecutor
エラー
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. たとえば、
string
、number
、またはdate
フィールドに対してファセットクエリを実行するには、それぞれstringFacet
、numberFacet
、dateFacet
などの対応する Atlas Search フィールドタイプを使用してフィールドのインデックスを作成します。 。 詳細については、「サポートされているデータ型とサポートされていないデータ型 」を参照してください。
Failed to Execute search Command
エラー
mongot
をmongod
と並行して実行するように配置した場合(つまり、 ワークロード分離用の検索ノードを構成しなかった場合 )、次のいずれかのイベントが発生した場合などにmongot
プロセスが終了すると、 mongot
はこのエラーを返す可能性があります。
クラスターのアップスケール
ノード フェイルオーバー
mongot
アップグレード
専用検索ノードにmongot
を配置した場合、 mongod
は各検索ノードを認識するプロキシを使用するため、 mongod
は検索クエリを、 mongot
がアクティブな正常なノードのみにルーティングします。