我的代码显示在下面。
client = Elasticsearch(url, http_auth = (username, password), verify_certs = False, read_timeout=50, terminate_after=25000)
examplename = 'GEOS.fp.asm.inst1_2d_smp_Nx.20180508_1700.V01.nc4'
s = Search(using = client, index = [set_index]).source(['metadata.Filename'])\
.query('match', Filename={examplename})
total = s.count()
错误消息是:
elasticsearch.exceptions.SerializationError: ({'query': {'match': {'Filename': set(['GEOS.fp.asm.inst1_2d_smp_Nx.20180508_1700.V01.nc4'])}}}, TypeError("Unable to serialize set(['GEOS.fp.asm.inst1_2d_smp_Nx.20180508_1700.V01.nc4']) (type: <type 'set'>)",))
通常,我不需要搜索字词即可匹配整个文档。因此,例如,如果文档名为GEOS.fp.asm.inst1_2d_smp_Nx.20180508_1700.V01.nc4,我希望在查询20180508时返回该文档。
答案 0 :(得分:0)
在.query('match', Filename={examplename})
中,您传入的是set
,该文件不可json序列化。我认为应该只是.query('match', Filename=examplename)
。希望这会有所帮助!