問題タブ [nest]
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# - NEST C# クライアントを使用した ElasticSearch の検索
私は検索エンジンを探し始め、いくつか読んだ後、ElasticSearch を使用することにしました (これは非常に驚くべきことです :))、私のプロジェクトは C# にあるので、クライアントを探して NEST を使い始めました。検索部分で少し混乱しました。
特定のタイプのすべてのフィールドを検索したいのですが、思いついたのは次のコードです。
文字列クエリ検索の多くが非推奨であることがわかり、上記がこれを行う正しい方法であることを確認したかった (上記は非推奨としてマークされていない...) また、単純なタスクには少し長いので、おそらく誰でもこれを行う別の方法を知っています。
ありがとう
c# - NEST ElasticSearch ライブラリを使用した接続プーリング
私は現在、ElasticSearch とやり取りするために NEST ElasticSearch C# ライブラリを使用しています。私のプロジェクトは、ディレクトリアシスタント情報にアクセスするための RESTful Web サービスを基本的に構築する MVC 4 WebAPI プロジェクトです。
私たちは NEST を使い始めたばかりで、ドキュメントの不足につまずいています。そこにあるものは便利ですが、非常に大きな穴がいくつかあります。現在、必要なものはすべて機能していますが、接続に最大 1 秒かかる場合があるという問題が発生しています。私たちがやりたいことは、SQL Server と対話する方法と同様に、ある種の接続プールを使用することです。
ネストを使用して接続する方法に関するドキュメントは次のとおりです。 http://mpdreamz.github.com/NEST/concepts/connecting.html
以下は、私たちのプロジェクトの関連するコード スニペットです。
ドキュメントを見ると、接続プールの規定が見当たりません。私は自分自身を実装することを考えていました (たとえば、3 つまたは 4 つの ElasticClient オブジェクトを格納し、それらをラウンドロビン スタイルで選択する) が、誰かがより良い解決策を持っているかどうか疑問に思っていました。そうでない場合、手動で接続プールを実装する最善の方法について誰かアドバイスがありますか? 参考になる記事はありますか?
ありがとうございます。
更新: これは、すべてのリクエストで TryConnect を呼び出すことと、特定のネットワーク設定に関連しているようです。エラスティック ボックスと同じネットワーク上のマシンを使用すると、問題は完全に解消されました。私の開発マシン (エラスティック ボックスに対して平均 350 ミリ秒) は、時々 http 接続に失敗するようで、TryConnect で長い時間がかかりました。
c# - Mpdreamz/NESTを使用してelasticsearchクエリ結果をループする
Iamは、elasticsearchを検索するための.netクライアントとしてMpdreamz/NESTを使用しています。
を使用して検索結果の結果数を取得していresult.Hits.Total
ます。しかし、結果からフィールドの値をどのように表示できるのか疑問に思っています。
.net - NESTElasticSearchクライアントでのSearchBuilderの使用
NESTでSearchBuilderAPIを使用するためのヒントや例があるかどうか疑問に思いました。ドキュメントはまだ少しまばらです。
URLパラメータで送信された基準に基づいてクエリ/フィルタを動的に構築しようとしています。例:
www.mydomain.com/things/search?prop1=3&prop2=foo&prop3=bar
そして、それらを抽出したら、存在する基準に基づいて完全一致クエリを作成します。
elasticsearch - Elasticsearch C#Mpdreamz/NESTクライアントを使用したネストされたフィールドのファセット
Mpdreamz / NEST Elasticsearchクライアントを使用して、ネストされたフィールドのプロパティに基づいてファセットを一覧表示するにはどうすればよいですか?
Nestのドキュメントを確認しましたが、その方法が明確ではありません。
これは私が試したコードです:
ファセットの結果として、次のようになります。
- ジャンル(842)
- 98(47)
- 51(30)
- 24(29)
- 46(28)
私は次のようなものを手に入れることを期待していますが:
- ジャンル1(842)
- ジャンル2(47)
- ジャンル3(30)
- ジャンル4(29)
- ジャンル5(28)
私は何を間違えますか?Nestとそのファセットでネストされたフィールドを使用する正しい方法を確認する場所はどこですか?
ありがとうございました。
更新1:
私はそれがトークナイザー/アナライザーと関係があることを発見しました。ジャンル名にスペースやダッシュがない場合は、すべて正常に機能します。分析されていないインデックス属性も試しました
しかし、それは役に立ちませんでした
更新2: 以前のインデックス削除の直後に注釈の代わりに流暢なインデックスマッピングを追加しました:
注釈の何が問題だったのかわかりません。インデックス設定に注釈を使用するために必要な追加の構成はありますか?
c# - elasticsearch & NEST でコレクション内の一致を検索する
私はelasticsearchとNESTに本当に慣れていないので、基本的な質問で申し訳ありません。
コレクション プロパティに一致するすべてのドキュメントを検索する方法を見つけようとしています。
私のエラスティック ドキュメント オブジェクトは次のようになります。
TagIds
プロパティに特定の番号が含まれているドキュメントを検索する方法を知りたいです。
私はこのようなことをしたいと思います:
c# - ElasticSearchでのNESTの使用-部分的に入力されたオブジェクトを検索条件として使用するにはどうすればよいですか?
これで、「Package」オブジェクトのインデックスが正常に作成され、簡単なテキストクエリが完全に機能しています。
部分的に入力されたオブジェクト(「パッケージ」タイプ)を検索の条件として使用できるかどうか/どのように使用できるか知りたいですか?
パッケージは次のようになります。
現在、クエリは次のようになっています。
しかし、idは次のようなものが好きです:
私は理にかなっていると思います:Dよろしくお願いします
search-engine - NESTライブラリを使用したインデックス作成中のRoutingMissingException
TypeMappingを使用してコードでドキュメントマッピングを指定しましたが、インデックス作成中に次の例外が発生し始めました
{"error": "RoutingMissingException [routing is required for [search2] / [ImageDocument] / [2039810546]]"、 "status":500}
また、タイプマッピングを指定しているときにNESTを使用してルーティングを指定する方法が見つかりませんでした。インデックス作成中またはマッピング時にルーティングパラメータをどこで指定するかについての手がかりはありますか?
c# - NEST でフィルターを「動的に」作成する
私には興味深い課題があり、簡単な答えがあると思います。
構文的に次のようなことを行うと、NEST フィルターが正しく機能することがわかっています。
私の基本サービスでは、発信者が何らかの列挙可能なアイテムのリストを渡してフィルタリングできるようにする必要があります。
私は基本的に、プログラムで次のようなことを達成できるようにしたいと考えています(フィルターはメソッドに渡されます):
つまり、{ {"first.name", "joe"}, {"first.name", "jim"}, {"first.name", "frank"}} の配列を渡した場合、に相当するものを生成する
.net - 一定数のインデックスとドキュメントを使用すると、elasticsearch の一括インデックス作成が時間の経過とともに遅くなる
インデックスの量とドキュメントの数が一定の場合、.NET NEST クライアントと ElasticSearch を使用したバルク インデックス作成のパフォーマンスが時間の経過とともに低下することを経験しています。
Ubuntu Server 12.04.1 LTS 64 ビットおよび Sun Java 7 を使用して、m1.large Amazon インスタンスで実行ElasticSearch Version: 0.19.11, JVM: 23.5-b02
しています。このインスタンスでは、Ubuntu のインストールに伴うもの以外は何も実行されていません。
Amazon M1 ラージ インスタンス: http://aws.amazon.com/ec2/instance-types/から
ES_MAX_MEM は 4g に設定され、ES_MIN_MEM は 2g に設定されます。
毎晩、.NET アプリケーションで NEST を使用して、約 15000 のドキュメントをインデックス化/再インデックス化しています。任意の時点で、<= 15000 ドキュメントのインデックスは 1 つだけです。
サーバーが最初にインストールされたとき、最初の数日間はインデックス作成と検索が高速でしたが、その後、インデックス作成はますます遅くなり始めました。一括インデックス作成では、一度に 100 個のドキュメントがインデックス処理され、しばらくすると、一括操作が完了するまでに最大 15 秒かかります。その後、多くの次の例外が発生し始め、インデックス作成が停止しました。
一括インデックス作成の実装は次のようになります
Elasticsearch デーモンを再起動しても違いはないように見えますが、インデックスを削除してすべてを再インデックス化すると違いが生じます。しかし、数日後には同じようにインデックス作成が遅いという問題が発生します。
インデックスを削除し、各一括インデックス操作の後に更新間隔を再度有効にした後、最適化を追加しました。これにより、インデックスが劣化しないようにすることができます。
ここで何かひどく間違ったことをしていますか?