問題タブ [elasticsearch-net]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Json.Net の「現在のエラー コンテキスト エラーは要求されたエラーとは異なります」例外
環境
ElasticSearch クラスターとの間で大量のデータをインポート/エクスポートするために、C# で並列ジョブ フレームワークを作成しました。これを行うために、フレームワークによってある時点で実行されるオブジェクトとして、1 つのアイテムの各インポートまたはエクスポートをモデル化しました。ElasticSearch とのインターフェースには、NEST (公式の .NET ElasticSearch クライアント ライブラリ) v1.7.1 と JSON.Net 7.0.1 を使用しています。
各インポート/エクスポート タスク オブジェクトは、NEST を使用して ElasticSearch と対話します。パフォーマンス上の理由から、NEST の _msearch API で使用するために、タスク オブジェクトによって生成された検索要求を固定サイズのバッチにグループ化するプロキシ クラスを作成しました。このクラスの呼び出し元は、バッチが戻るまで遅延されます。そのクラスはこちらから入手できます。
私のフレームワークは、モデルの各インポート/エクスポート タスクの結果を「bool」または「Exception」としてラップします。個々の項目でエラーが発生した場合でも、全体のプロセスは続行できます。
問題
数時間のタスクがエラーなしで完了した後、次の例外が何千回も発生しています。
これは、例外をスローするコードです (上記のリンクされた一括サーチャー クラスから)。
はどこClient
ですかIElasticClient
。
例外メッセージをグーグルで検索すると、 JSON.Net の JsonSerializerInternalBase クラスにあるこのメソッドにたどり着きます。これは、各逆シリアル化の後に実行されるようです。
複数のスレッドにわたるすべての操作で単一の NEST オブジェクトが再利用されている場合 (NEST は JsonSerializer インスタンスを 1 つしか使用しないと思います)、JSON.Net のこの部分はスレッドセーフではないと思います。奇妙なことに、実行して数時間経過するまでエラーが発生し始めません。
これをさらにデバッグするにはどうすればよいですか?
elasticsearch - ElasticSearch バルク インデックス作成
バージョン 2.1 と 2.0 (アルファ) クライアントを Nest C# クライアントと共に使用しています...いくつかのレコードを一括挿入しようとしていますが、サーバーがエラーを返しています。Linuxサーバーと通信するWindowsクライアントでクライアントを利用しています(ただし、これは問題になるとは思いません)。
更新 - エラー情報
私が得ているエラーは、Bulk() メソッドから返された応答にあります...返された BulkResponse の 2 つのプロパティは次のとおりです。
OriginalException: "リモート サーバーがエラーを返しました: (400) Bad Request"
ServerError.Error: "検証に失敗しました: 1: リクエストが追加されていません"
elasticsearch - エラスティック検索 - ネスト ブール フィールド マッピング
自分のタイプで NEST を使用してスキーマ マッピングを作成すると、ElasticSearch から次の例外が発生します。
上記のリクエストでマッピングを作成すると、例外が発生します。Bool フィールドはトークン化されていません。これを解決するのを手伝ってください?.
elasticsearch - 配列項目の Elasticsearch 集約
以下は、集計クエリを実行する Elasticsearch ドキュメントです。
結果は次のようになります。
Elasticsearch でこれを実現する方法はありますか?
nest - NEST を使用して ElasticSearch のプラグインからアナライザーを設定する
私の最初のSO投稿!文字列フィールドに Stempel アナライザー (ポーランド語の ES アナライザー) を設定しようとしています。私はPUTリクエストを介してそれを行うことができます:
そしてそれはうまくいきます。NESTで同じことをしようとしています。
動作していません:
私が使用しているとき
正常に動作するため、.NET はこのアナライザーを検出しています。ES 2.1.1 を使用しています。& ネスト 1.7.1
EDIT:私が調べたところ、NESTは.NETで作成されたAttachmentクラスの属性のマッピングを行っていないようです。Document クラスの Map Attributes を行います
ただし、Attachment クラスではありません。
elasticsearch - クエリに関する ElasticSearch.NET および F# の問題
C# コードベースを、ElasticSearch.NET クライアントを使用する F# に変換しようとしています。F# は正しい型を適切に推論していないようです。
動作する C# コードは次のとおりです。
同等または一致する F# コードを以下に示しますが、コンパイルされません。
このコードは F# を使用して正しく動作しますが、必要なものではありません。
コンパイルしない F# では、次のエラーが表示されます。
このプログラムの前の情報に基づいて、不定型のオブジェクトを検索します。オブジェクトの型を制約するために、このプログラム ポイントの前に型注釈が必要になる場合があります。これにより、ルックアップを解決できる場合があります。
Question の F# 型シグネチャは次のとおりです。
nest - エラスティック検索クライアントを使用して未加工の json を投稿する
ElasticSearch.Net /Nest 2.0.2 にアップグレードしましたが、低レベルのクライアント メソッド (connector.GetClient().Raw.Bulk()) を使用できなくなりました。私はドキュメントを見てきましたが、新しいバージョンを使用して生のjsonを投稿して新しいドキュメントにインデックスを付ける方法を示すものは見つからないようです。