如何解决如何在 Elasticsearch Python 客户端中查询包含撇号的字段
我正在使用 Python 客户端通过 sql 查询来查询 Elasticsearch 索引。我有一个包含城市名称的字段“城市”,其中可以包含字符串中的撇号字符,例如“N'Djamena”。 当我尝试查询此类字段时,我收到 Elasticsearch 解析错误。只是想知道如何在我的 where 子句中使用这样的字符串。
query = """select OverallIndex from topcities where Country = 'Chad' and City = 'N'Djamena' """
cityindex = es.sql.query(body={'query': query})
以下是我从 Elasticsearch 收到的异常信息
elasticsearch.exceptions.RequestError: RequestError(400,'parsing_exception',"line 1:73: extraneous input 'Djamena' expecting {<EOF>,'AND','BETWEEN','GROUP','HAVING','IN','IS','LIKE','LIMIT','NOT','OR','ORDER','RLIKE',LIMIT_ESC,'=','<=>',NEQ,'<',' <=','>','>=','+','-','*','/','%','::',STRING}")
我什至尝试替换字段中的撇号字符以及如下所示的 where 参数,但我仍然遇到相同的异常
cityName = str("N'Djamena").replace("'","")
query = """select OverallIndex from topcities where Country = 'Chad' and replace(City,'') = '""" + cityName + """'"""
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。