フィルタ弾性検索インデックスデータをelasticsearch_dsl
pythonクライアントを使用して適用しようとしていますが、文字列フィールドでは機能しません。Elasticsearch dsl用語フィルタが文字列で機能しないフィールド
これは私のESインデックスデータである:
s = Search(using=es, index='idx_object', doc_type='ip').source(include=['id', 'status', 'username'])
[{u'_score ':1.0、u'_type':u'ip」、u'_id ':u'79'、U '_source':{u'status ':u'PUBLISHED'、u'username ':u'[email protected]'、u'id ':79}、u'_index':u'idx_object '}、{u '_score':1.0、u'_type ':u'ip'、u'_id ':u'84'、u'_source ':{u'status':u'PUBLISHED '、u'username':u'julia U'idx ':u'idx_object'}、 'u'_score':1.0、u'_type ':u'ip'、u'_id ':u' 73 '、u'_source:' u'status ':u'PUBLISHED'、u'username ':u'[email protected]'、u'id ':73}、u'_index':u'idx_object ' }、{u'_score ':1.0、u'_type':u'ip '、u'_id':u'82 '、u'_source':{u'status ':u'PUBLISHED'、u'use u'idx_object '}、{u'_score':1.0、u'_type ':u'ip'、u '、' rname ':u'[email protected]'、u'id ':82} '_id':u'65 '、u'_source':u'status ':u'PUBLISHED'、u'username ':u'[email protected]'、u'id ':65}、u'_index ':u'idx_object'}、{u'_score ':1.0、u'_type':u'ip '、u'_id':u'78 '、u'_source':{u'status ':u'PUBLISHED '、u'idx_object'}、{u'_score ':1.0、u'_type':u '、' u'idx_object ' u'_id ':u'62'、u'_source ':u'status':u'PUBLISHED、u'username ':u'[email protected]'、u'id ':62} 、 'u'_score':1.0、u'_type ':u'ip'、u'_id ':u'96'、u'_source ':{u'status' :u'idx_object '}、{u'_score':1.0、u'_type]:u'idx_object '、u'idx_object'、u'idx_object ' ':u'ip'、u'_id ':u'70'、u'_source ':{u'status':u'PUBLISHED '、u'username':u'[email protected] '、u'id ':70、u'_index':u'idx_object '}、{u'_score':1.0、u'_type ':u'ip'、u'_id ':u'80'、u'_source ':{ u'stern ':u'PUBLISHED'、u'username ':u'[email protected]'、u'id ' :80}、u'_index ':u'idx_object'}]
ここで、id整数フィールドにフィルターを適用すると、それは機能しています。
s = Search(using=es, index='idx_object', doc_type='ip').source(include=['id', 'status', 'username']).filter("term", id=79)
出力:
[{u'_score ':0.0、u'_type':u'ip 'u'_id ':u'79'、u'_source':{ u'status ':u'PUBLISHED'、u'username ':u'[email protected]'、u'id ':79}、u'_index':u'idx_object '}]今
ユーザー名文字列フィールドにフィルタを適用すると、そのフィルタは機能しません。
s = Search(using=es, index='idx_object', doc_type='ip').source(include=['id', 'status', 'username']).filter("term", username='[email protected]')
出力:
[]