問題タブ [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.
elasticsearch - ElasticSearch Put マッピングで update_all_types を渡す
ElasticSearch 2.0 にアップグレードしていますが、Nest 1.7.0 のマッピングで問題が発生しました。フィールドを共有する 2 つの型があります (同じ形式)。
影響を受けるタイプのいずれかの起動時にマッピングを追加しようとすると (現在PUT
、毎回マッピングを行っています)、次のエラーが返されます。
hereで説明されているコードベースのマッピングを使用していRaw
ますが、次のようなものを使用してクライアントのプロパティに頼らずに、このメソッドからクエリ文字列をぶら下げる方法がわかりません。
_client.Raw.IndicesPutMapping("ourindex", "ourtype", PutMappingDescriptorObj, parameters => parameters.AddQueryString("update_all_types", null));
Nestの2.0 ブランチを参照しましたが、これらのマッピング呼び出しで update_all_types クエリ文字列パラメーターへの参照が見つかりませんでした。
呼び出しが機能する可能性があると仮定すると、IndicesPutMapping()
現時点ではそれが唯一の選択肢ですか? 代わりに、これらのマッピングを条件付きで追加するだけでよいのではないかと考え始めています。
json - Elasticsearch のバルク インデックスを作成する JsonReaderException
これは、elasticsearch を使用した最初の試みです。以下の JsonReaderException エラーのトラブルシューティング方法がわかりません。
例外エラーが発生します
タイプ 'Newtonsoft.Json.JsonReaderException' の例外が Newtonsoft.Json.dll で発生しましたが、ユーザー コードで処理されませんでした
追加情報: 文字列の読み取り中にエラーが発生しました。予期しないトークン: StartObject。パス 'items[0].index.error'、行 1、位置 108。
vw_MusicRules.cs
シリアル化された sqlTrack
elasticsearch - Elasticsearch ネストに 2 つの並列集計を使用する方法
以下の http リクエストのように: TERM "service_project" aggr に基づいて、2 つの別の SUM aggr "service_hour_price" と "service_part_price" があります。Elasticsearch Nest を使用して同じことを行うことはできますか?
これで、次のように、That Term Aggr で SUM Aggr ベースを 1 つだけ使用できます。
c# - 集約、ElasticSearch (Nest、Elasticsearch.net) での提案は完全なオブジェクトを取得します
私はelasticsearchにまったく慣れていません。NESTを使用してエラスティックにクエリを実行しています。以下は私のコードスニペットです。
ドキュメントのリスト (指定したドメイン オブジェクトのリスト) を取得しますが、提案と集計の場合、ドメイン オブジェクトは返されませんか?
事前にお詫び申し上げます。正しい方向に向けていただければ幸いです。
NESTに実装する方法を探しています。
c# - ElasticSearch.Net - 一括クエリでインデックスを削除する
特定のセットからすべての要素を取得してインデックスに追加し、インデックスの古いコンテンツを置き換えます (空の場合はインデックスを作成します)。これを実現するために、Elasticsearch.net Bulk 関数で呼び出す Elasticsearch バルク クエリを使用します。
インデックスに要素を追加する/すべての要素を含む新しいインデックスを作成することに成功しましたが、古いコンテンツがないことを確認するために、一括クエリでインデックス全体を削除する方法を見つけることができないようですその中に残っているアイテム。別の呼び出しでそれを行うこともできますが、これは、インデックスを削除してから再作成に失敗した場合、インデックスが残っていないことを意味しますが、一括クエリで失敗した場合、インデックスは「削除されません。
これは、現在、一括インデックス作成のために持っているものです(そして機能します):
私は追加しようとしました:
また:
foreachの前ですが、役に立ちません。要素を追加する前にインデックスを一括で削除する方法はありますか?
elasticsearch - Elasticsearch.Net とタイムアウト
4 ノードの Elasticsearch クラスターがあります。SQL からのデータでクラスターを満たすように設計された .net コンソール アプリケーションがあります。レコードが追加 (または削除) される割合をかなり低く抑えている限り、すべてが正常に機能します。最終的にスレッドの数を増やすと、コンソール アプリからタイムアウト エラーが表示されます。クラスターには合計 48 個のコアがあり、レコードのインデックス作成にかかる平均時間は約 0.1 秒です。
毎秒約 7000 件のレコード (ドキュメント) を処理することができました。リソースが少ないことを示すelasticsearch.netから例外がスローされることはありません。インデックス作成キューが過負荷になっていることはありません。サーバーの CPU 使用率が約 10% を超えることはありません。問題はクラスターや構成ではなく、ネスト接続にあるようです。接続用のコードは次のとおりです。
http.basic 認証を使用してクラスターをセットアップしましたが、オンとオフを切り替えて試してみましたが、違いはありません。ES ノードからの関連設定の一部を次に示します。
この時点で、問題が .Net クライアントにあるのか、それともサーバーにあるのかわかりません。すべてがクライアントを指していますが、次に何を試すべきか途方に暮れています。私は基本的に SQL サーバーから変更をレプリケートしているだけなので、BulkAPI を使用できるとは思いません。同期を保つために、変更を受信したらすぐに実行します。新しいドキュメントを挿入するときは、更新するときよりもはるかに速いペースで作業できるようです。私は更新ドキュメントを読みましたが、完全な更新よりも部分的な更新の方が優れているように見えますが、すべての更新で発生するように見える get-update-delete-reindex 全体があります。
es docs によると、スレッドプールやパフォーマンス設定を微調整することは想定されていません。いずれにせよ、私はそれらの限界に達しているとは思いません。ES エラー ログも問題を示していません。
接続エラーを追跡するために私ができることについて誰かアドバイスがありますか?
更新:これは実際のエラーです:
エラー: 予期しない結果 (SaveToES)。Elasticsearch.Net.Exceptions.MaxRetryException: クラスター内の既知のノードをスニッフィングすると、独自の maxretry 例外が発生しました ---> Elasticsearch.Net.Exceptions.SniffException: クラスター内の既知のノードをスニッフィングすると、独自の maxretry 例外が発生しました ---> Elasticsearch.Net.Exceptions.MaxRetryException: 再試行タイムアウト 00:00:05 は、1 回再試行した後にヒットしました: 'GET _nodes/_all/clear?timeout=3000'. InnerException: WebException、InnerMessage: 操作がタイムアウトしました、InnerStackTrace: System.Net.HttpWebRequest.GetResponse() at Elasticsearch.Net.Connection.HttpConnection.DoSynchronousRequest(HttpWebRequest リクエスト、Byte[] データ、IRequestConfiguration requestSpecificConfig) InnerException: WebException、 InnerMessage: 操作がタイムアウトしました。InnerStackTrace: System.Net で。Elasticsearch.Net.Connection.HttpConnection.DoSynchronousRequest(HttpWebRequest リクエスト、Byte[] データ、IRequestConfiguration requestSpecificConfig) の HttpWebRequest.GetResponse() ---> System.AggregateException: 1 つ以上のエラーが発生しました。---> System.Net.WebException: Elasticsearch.Net.Connection.HttpConnection.DoSynchronousRequest(HttpWebRequest request, Byte[] data, IRequestConfiguration requestSpecificConfig) の System.Net.HttpWebRequest.GetResponse() で操作がタイムアウトしました ---内部例外スタック トレースの終了 --- --- 内部例外スタック トレースの終了 --- Elasticsearch.Net.Connection.RequestHandlers.RequestHandlerBase.ThrowMaxRetryExceptionWhenNeeded[T](TransportRequestState で) Byte[] data, IRequestConfiguration requestSpecificConfig) ---> System.AggregateException: 1 つ以上のエラーが発生しました。---> System.Net.WebException: Elasticsearch.Net.Connection.HttpConnection.DoSynchronousRequest(HttpWebRequest request, Byte[] data, IRequestConfiguration requestSpecificConfig) の System.Net.HttpWebRequest.GetResponse() で操作がタイムアウトしました ---内部例外スタック トレースの終了 --- --- 内部例外スタック トレースの終了 --- Elasticsearch.Net.Connection.RequestHandlers.RequestHandlerBase.ThrowMaxRetryExceptionWhenNeeded[T](TransportRequestState で) Byte[] data, IRequestConfiguration requestSpecificConfig) ---> System.AggregateException: 1 つ以上のエラーが発生しました。---> System.Net.WebException: Elasticsearch.Net.Connection.HttpConnection.DoSynchronousRequest(HttpWebRequest request, Byte[] data, IRequestConfiguration requestSpecificConfig) の System.Net.HttpWebRequest.GetResponse() で操作がタイムアウトしました ---内部例外スタック トレースの終了 --- --- 内部例外スタック トレースの終了 --- Elasticsearch.Net.Connection.RequestHandlers.RequestHandlerBase.ThrowMaxRetryExceptionWhenNeeded[T](TransportRequestState で)
1 requestState, Int32 maxRetries) at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.RetryRequest[T](TransportRequestState
1 requestState) で Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.DoRequest[T](TransportRequestState1 requestState) at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.RetryRequest[T](TransportRequestState
) 1 requestState) で Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.DoRequest[T](TransportRequestState)1 requestState) at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.Request[T](TransportRequestState
1 requestState, Object data) at Elasticsearch.Net.Connection.Transport.Elasticsearch.Net.Connection.ITransportDelegator.Sniff(ITransportRequestState ownerState) --- 内部例外スタック トレースの終了 --- --- 内部例外スタック トレースの終了 - -- Elasticsearch.Net.Connection.Transport.Elasticsearch.Net.Connection.ITransportDelegator.Sniff(ITransportRequestState ownerState) で Elasticsearch.Net.Connection.Transport.Elasticsearch.Net.Connection.ITransportDelegator.SniffClusterState(ITransportRequestState requestState) で Elasticsearch.Net .Connection.Transport.Elasticsearch.Net.Connection.ITransportDelegator.SniffOnConnectionFailure(ITransportRequestState requestState) で Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.RetryRequest[T](TransportRequestState1 requestState) at Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.DoRequest[T](TransportRequestState
1 requestState) で Elasticsearch.Net.Connection.RequestHandlers.RequestHandler.Request[T](TransportRequestState1 requestState, Object data) at Elasticsearch.Net.Connection.Transport.DoRequest[T](String method, String path, Object data, IRequestParameters requestParameters) at Elasticsearch.Net.ElasticsearchClient.DoRequest[T](String method, String path, Object data, IRequestParameters requestParameters) at Elasticsearch.Net.ElasticsearchClient.IndicesCreatePost[T](String index, Object body, Func
2 requestParameters) で Nest.RawDispatch.IndicesCreateDispatch[T](ElasticsearchPathInfo1 pathInfo, Object body) at Nest.ElasticClient.<CreateIndex>b__281_0(ElasticsearchPathInfo
1 p, ICreateIndexRequest d) で Nest.ElasticClient.Nest.IHighLevelToLowLevelDispatcher.Dispatch [D、Q、R](D 記述子、Func3 dispatch) at Nest.ElasticClient.CreateIndex(Func
2 createIndexSelector) DCSCache.esvRepository.CreateIndex(String IndexName、String IndexVersion) at DCSCache.esvRepository.Save(esv ItemToSave、String IndexName、String IndexVersion)
elasticsearch - Elasticsearchのクエリレベルでアナライザーを追加するには?
Elasticsearch のクエリからストップ ワードを削除する必要があります。インデックス レベルでアナライザーを適用できますが、elasticsearch のクエリまたは検索レベルでアナライザーを適用する方法を教えてください。
elasticsearch - NEST - 複数のネストされた集計を行うにはどうすればよいですか?
複数のネストされた集計を行うにはどうすればよいですか?
私はこのようなことを試しました:
しかし、それはFacets2
の子として返されますFacets
誰でも助けることができますか?