データベースに何らかの電子メールを持っているすべてのユーザーを探しています。
'user' :
{
'properties':
{
'user_name': { 'type': 'string', 'index' : 'not_analyzed' },
'about': { 'type': 'object' },
}
}
about フィールドは JSON オブジェクトで、次のようになります。
{"nickname":"bobby McBob", "contact":"bobmcbob@gmail.com", "hobbies":"tennis"}
しかし、決まった構造はありません。
パターン@ .com に適合する方法で、文字列を持つすべてのユーザーを検索したいと思います。これにより、電子メールを持つすべてのユーザーが返されることを期待しています。
どうすればそれを行うことができますか?
次のような gmail を検索するための単純なクエリでさえ、
curl -X GET 'http://localhost:9200/index_name/user/_search' -d '{"query":{"match":{"_all":"gmail.com"}}}'
動作しません。たぶん、インデックス作成時に別のアナライザーでオブジェクト「について」を分析する必要がありましたか? それを分離/トークン化するには?
おそらく別のクエリを使用する必要がありますか?
どうすればそれを行うことができますか?