この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 9077|答える: 0

Elasticsearch:No handler for type [string] declared on field[XX]的解决办法

[リンクをコピー]
掲載地 2019/01/09 10:29:11 | | | |
エラーの理由

{
「error」: {
「root_cause」:[
{
「タイプ」:「mapper_parsing_exception」、
"reason":「フィールド[upload_status]で宣言された型[string]のハンドラーなし」
}
],
「タイプ」:「mapper_parsing_exception」、
"reason":「フィールド[upload_status]で宣言された型[string]のハンドラーなし」
},
「ステータス」:400
}


私はElasticsearchバージョン6.2.2を使っており、学校のドキュメントに従ってフィールドを作成する際には{"type":"string","index":"not_analyzed"}を使っています。

原因分析

スペルを確認した後、Elasticsearchの新しいバージョンの機能を確認することにしました。なぜなら、以前にヘッドプラグインのインストール方法の穴を踏んでしまったことがあったからです。バージョンの問題で。
案の定、Elasticsearchは5.Xからテキストとキーワードを導入し、キーワードは非セグメンテーションフィールドに適用され、検索時のみ正確にマッチングでき、その時点で文字列は保持されます。

到着6.Xは文字列を完全に取り除く終える。

そのほかにも「index」の値はブール変数のみでなければなりません

回避策

{"type":"text","index":false}

jsonの修正は以下の通りです:

しかし、新たな誤りは以下の通りです。

{
「error」: {
「root_cause」:[
{
「type」: 「illegal_argument_exception」
「理由」:「[レストラン]へのマッピング更新を拒否する。最終的なマッピングは1つ以上のタイプを持つため:[record, info]」
}
],
「type」: 「illegal_argument_exception」
「理由」:「[レストラン]へのマッピング更新を拒否する。最終的なマッピングは1つ以上のタイプを持つため:[record, info]」
},
「ステータス」:400
}
これは以下の理由によるものです:Elasticsearch 6.xにおける大きな変更点で、Mappingは1つの型のみを許可します。 5.xで作成された複数のマッピングタイプのインデックスは、Elasticsearch 6.xで従来通り実行されます。 マッピングタイプはElasticsearch 7.0.0で完全に削除されます。

Elasticsearch 7.xリリース以降、typeURLのパラメータは任意となりました。 例えば、文書のインデックス作成にはもはや文書タイプは必要ありません

リソース:

https://github.com/sirensolutions/sentinl/issues/257
https://www.elastic.co/guide/en/ ... moval-of-types.html







先の:MD5暗号化
次に:C#コードはどうやってコンピュータをシャットダウン、再起動、ログアウト、ロック、シャットダウンさせるのですか...
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com