ES実戦シーン1:existsフィールド使用
584 ワード
ビジネスシーン:ドキュメントに格納されるデータには、dg,ws,lsの3つのフィールドがあります.この3つのフィールドは同じドキュメントに1つしか存在しませんが、ESはドキュメントをシーケンス化する場合、空の値はデフォルトでシーケンス化されません.現在はdgまたはwsの値のあるデータだけをクエリーしたいのですが、どのようにクエリーしますか?
思考:MySQLでは、あるフィールドがnullではなく、別の2つのフィールドis nullに相当します.ESはフィールドが空のデフォルトでシーケンス化されていないことが知られているので、MySQLであれば、次のような書き方に相当します.
ソリューション:ESでは、existでフィールドの存在を判断できます.書き方は次のとおりです.
最終改定は2020年4月12日15:48:02
思考:MySQLでは、あるフィールドがnullではなく、別の2つのフィールドis nullに相当します.ESはフィールドが空のデフォルトでシーケンス化されていないことが知られているので、MySQLであれば、次のような書き方に相当します.
select * from data_doc where dg is not null;
ソリューション:ESでは、existでフィールドの存在を判断できます.書き方は次のとおりです.
{
"query": {
"exists": {
"field": "dg"
}
}
}
最終改定は2020年4月12日15:48:02