問題タブ [elasticsearch-py]
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.
python - タイプが存在しない場合、Python エラスティックサーチ クライアントは true を返します
タイプのマッピングを削除しようとしていますが、その前に、以下のコードのようにタイプが存在するかどうかを確認しています:
タイプが存在するかどうかをチェックする行は、存在しないタイプであっても true を返します。そのため、型のマッピングを削除しようとすると、次の行で TypeMissingException が発生します。
ipython コンソールでコードを実行すると、問題はないように見えますが、コードが非同期タスクの一部として実行されると問題が発生します。これは毎回発生するわけではなく、QA サーバーと運用サーバーでランダムに発生します。これら 2 つの環境は、elasticsearch 用に 2 つのノードがある唯一の環境であり、他の環境では問題は見られません。
私は Python 2.7、elasticsearch-py 0.4.4、elasticsearch バージョン 1.0.1 を 64 ビット Linux 上の 2 つのノードで使用しています。コードは、定期的なセロリ タスクとして実行されます。
編集:問題に詳細を追加しました。
python - elasticsearch-py の解析エラーの取得
時間範囲内で特定の単語「tsbu」をelasticsearchデータ全体で検索しようとしています。これを実行しようとすると、SearchParseException と Parse Failure が発生します。
私が得る完全なエラーは次のとおりです。
python - インデックス作成中のpythonelasticsearchクライアントセットマッピング
次のように、curl コマンドで作成されるインデックスのマッピングを設定できます。
しかし、pythonでelasticsearchクライアントを使用してそのインデックスを作成し、マッピングを設定する必要があります..方法は何ですか? 以下のことを試しましたが、うまくいきません:
python - Bulk-API を使用して Elasticsearch-py で ElasticSearch にタイムスタンプを追加する
データにタイムスタンプを追加し、elasticsearch-py で一括インデックスを作成してから、kibana でデータを表示しようとしています。
私のデータはキバナに表示されていますが、タイムスタンプは使用されていません。インデックス パターンを構成した後に [Discovery] タブに移動すると、0 件の結果が返されます (はい、検索時間を調整してみました)。
バルク インデックス json は次のようになります。
これは Elasticsearch によって受け入れられ、Kibana にインポートされますが、_timestamp フィールドは実際にはインデックス化されません (「時間フィールド名」の下でインデックス パターンを構成するときにドロップダウンに表示されます)。
また、次のようにメタフィールドをフォーマットしようとしました。
これも機能しません。
最後に、_timestamp フィールドをインデックス内に含めてフォーマットを適用しようとしましたが、elasticsearch でエラーが発生しました。
エラーは次のとおりです。
誰かが提供できるどんな助けも大歓迎です。問題を十分に説明していない場合は、お詫び申し上げます。さらに明確にする必要がある場合はお知らせください。ありがとう。
python - Elasticsearch analyze() は Python の Spark と互換性がありませんか?
Python 3を使用してPySpark内でelasticsearch-pyクライアントを使用していますが、ESでanalyze()関数をRDDと組み合わせて使用すると問題が発生します。特に、RDD の各レコードはテキストの文字列であり、それを分析してトークン情報を取得しようとしていますが、Spark のマップ関数内で使用しようとするとエラーが発生します。
たとえば、これは完全に正常に機能します。
ただし、これを試すと:
ピクルス化に関連する非常に長いエラーメッセージが表示されます(これで終わりです):
エラーの意味がわかりません。私は何か間違ったことをしていますか?ES分析機能をRDDのレコードにマップする方法はありますか?
編集:elasticsearch-py の他の関数 (es.termvector() など) を適用するときにも、この動作が発生します。
python - アナライザーでの Elasticsearch Python 絵文字と用語オフセット
Python クライアントで Elasticsearch を使用していますが、Unicode、ES、アナライザー、および絵文字の間の相互作用について質問があります。絵文字を含む Unicode テキスト文字列を ES アナライザーで実行しようとすると、結果の出力で用語オフセットが台無しになっているようです。
例えば:
これにより、テストという用語のオフセットが間違っています。
別の Unicode 外部文字 (円記号など) を使用しても、同じエラーは発生しません。
誰が何が起こっているのか説明できますか?
elasticsearch - ElasticSearch 自動入力
製品コードで検索したい - 文字と数字の組み合わせ (例: A210/444
、Alexx 1982 X
、 ...)。(ところで: このタイプのデータを検索するためのベスト プラクティスはありますか?)
と のインデックスがindex_analyzer
ありsearch_analyzer
ます:
問題は自動入力にあります。
index_analyzer
すべての値は単語型です。
しかし、search_analyzer
(edgeNGramなし)...
...数字として認識1982
し、これが検索で問題を引き起こします(_all
プレースホルダーを使用)。ただ検索してみると検索結果にヒットなし1982
。
一部の文字列型のみを強制的に使用する方法はありますか?
アイデアをありがとう!
マーティン