問題タブ [pyes]
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 のインデックスをすばやく再作成する方法は?
約 2 億のドキュメントを含む ElasticSearch インデックスがあり、インデックスの合計サイズは 90Gb です。
マッピングを変更したので、ElasticSearch にすべてのドキュメントのインデックスを再作成してもらいたいと考えています。
新しいインデックスを (新しいマッピングで) 作成し、古いインデックス内のすべてのドキュメントを調べて、新しいインデックスに挿入するスクリプトを作成しました。
動作しているように見えますが、問題は動作が非常に遅いことです。2 日前に 300 ドキュメント/分で開始し、現在は 150 ドキュメント/分です。
スクリプトは、エラスティック サーチ マシンと同じネットワーク内のマシンで実行されます。
このような速度では、インデックスの再作成が完了するまでに 1 か月かかります。
エラスティック検索インデックスを再インデックス化するためのより高速な手法について知っている人はいますか?
python - MapperParsingException: タイプ [date_hour_minute_second] のハンドラーがフィールドで宣言されていません
Elasticsearch 用の Python Pyes クライアントを使用してドライバーを開発しています。ドキュメントhttp://www.elasticsearch.org/guide/reference/mapping/date-format/に基づいて、日付列のフォーマットが「date_hour_minute_second」のマッピングインデックスが必要です。また、pyesドキュメントhttps://pyes.readthedocsを確認します。 org/en/latest/guide/reference/mapping/date-format.html
フィールドに「date_hour_minute_second」形式を使用すると、タイトルに記載されている例外が発生しました。
これが私のフィールド定義です:
ドキュメントでさえサポートされていると言うような例外をスローする理由がわかりませんでした。
elasticsearch - ElasticSearch のパフォーマンスを向上させる
一部のデータのインデックス作成に ElasticSearch を使用しています。しかし、パフォーマンスはそれほど効率的ではないことがわかりました。
3000 エントリのデータしかなく、各データには 6 つの列があります。これらの 3000 エントリのインデックス作成には 5 分かかります。
私は ElasticSearch を初めて使用するため、私のコードとプログラム フローは次のような基本的なものです。
- 検索して、同じデータがあるかどうかを確認します。
- 同じデータがある場合は、更新します。
- そうでない場合は、追加します。
コードは次のとおりです。
探す:
索引
インデックス データのカウントを更新します。
コードのパフォーマンスを向上させる方法はありますか?
ご協力ありがとうございました。
python - elasticutils によるフィルターを使用した ElasticSearch
filter現在、ライブラリを介して既存の ElasticSearch インスタンスでa を使用しようとしていますelasticutils。残念ながら、私はどこにも行きません。問題が基本的な間違いを犯したためなのか、それともライブラリに問題があるのか どうかはわかりません(AFAICTの可能性があります)。
文字列型のフィールド(「A」など)を含む特定のマッピングを持つインデックスを取得しました(明示的なアナライザーは指定されていません)。そのフィールドには常に文字列のリストが含まれています。
そのフィールドAに特定の文字列を含めることでドキュメントをフィルタリングしたいので、試しました:
しかし、それは空の結果セットを返します。も使用してみましf = eu.F(A__in="text")たが、その結果、大きなエラー メッセージが表示されました。最も興味深い部分は[terms] filter does not support [A].
インデックスを別の方法で構成する必要があるかどうか疑問に思っています。おそらく、フィルターを使用できるようにファセットを作成する必要がありますか? しかし、私が読んだドキュメントには、これに関するヒントは見つかりませんでした。
使いたい理由は、、 、 でfilter自由に組み合わせられるからです。また、これもブール値である可能性があることを説明するいくつかの仕様を見つけましたが、それらは通常、 、、およびを参照していますが、これは私にとって十分な柔軟性がないと思います。しかし、またはに設定できる s のフラグについて言及している仕様もいくつか見つけました。それに関する情報は大歓迎です。andornotquerymustshouldmust_notoperatorqueryandor
だから、私の質問は次のとおりです。
- 構成の問題ですか?ファセットはこれと関係がありますか?
- ライブラリをスキップして、これがライブラリのバグかどうかをテストしたいのですが、たとえば、curl だけを使用してこのフィルタリング アクションを実行するにはどうすればよいですか? または他のライブラリ(おそらく
pyes)? - 複数のクエリを柔軟に組み合わせる (
and、or、 、およびそれらのグループ化を使用する) ことは可能ですか (つまり、フィルターをまったく使用しません)?notどうすればいいですか?(できれば、elasticutils他のライブラリ構文、たとえばpyes、または単純な CURL も同様に歓迎されます)。
elasticsearch - POST直後のElasticsearch GET
get_or_createES に複数のリクエストを実行すると、いくつかの問題が発生します。Elasticsearch は に応答してPOSTからドキュメントのインデックスを作成するのに時間がかかるようで、直後にGET呼び出されたは結果を返しません。
この例は、問題を再現します。
POSTうまくいきます:
最初のGETものはどの結果とも一致しません:
短い一時停止の後、結果が表示されます (秒GET):
その行動は正常ですか?
応答が遅くても、すぐに結果が得られる可能性はありますか?
ありがとう!
python - エラスティック検索 (pyes) を使用するとテスト ケースが遅くなる
最近、スタックにエラスティック検索を追加しましたが、テスト ケースが遅くなりました。
テストが互いに踏みにじられないようにするために、インデックスでテストを分離しました。これが原因のようです。インデックスの作成と削除が遅いようです。
「切り捨て」に相当するものを見つけることができませんでしたが、尋ねてみようと思いました。
また、数年前、私が Java で ES を使用していたとき、テストにメモリ内ノードを使用しましたが、これは非常に高速でした。pyes にこのオプションがあるとは思いません。
python - Pyes Elastic Search 結果が返されない
pyes の入門チュートリアルに従っています。コードは終了できますが、画面に検索結果が返されません。
コードを実行すると、hello world のみが返されます。
エラスティック検索はまったく初めてで、フィードバックをいただければ幸いです。
elasticsearch - 並べ替えられた検索結果を pyes で取得する
これは最小限の例です。
'test_index'次のレコードを含むインデックスがあります。
'name'フィールドのアルファベット順にレコードを取得したい。引数を使用しsortますが、結果はソートされません:
結果:
ここで何が間違っていますか?