首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Python 8问题的Elasticsearch索引

使用Python 8问题的Elasticsearch索引
EN

Stack Overflow用户
提问于 2015-02-19 10:52:34
回答 1查看 3.5K关注 0票数 0

我正在使用官方python库对elasticsearch上的数据进行索引:elasticsearch。使用cx_oracle python库直接从oracle获取数据,转换成文档格式并发送到elasticsearch索引。在大多数情况下,这是很好的工作,但有时我会遇到问题的字符,如。有时这个字符被索引为\xc3\xb8,有时被索引为xc3\xb8 8。即使在相同的数据库条目中也会发生这种情况。一个变量可以使索引正确,而另一个变量则不是这样。

有人知道是什么原因造成的吗?

提前感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-27 16:35:42

如果您的“”有时是正确的-有时不是,数据必须在您的数据库中损坏。这不是弹性搜索的问题。(一个月前我也遇到了同样的问题!)

包含各种编码的字符串很可能放在数据库中,而以前没有全部转换成单一格式。

代码语言:javascript
运行
复制
text = "ö"
asUtf=text.encode('UTF-8')
print(asUtf)
print(asUtf.decode())

结果:

b'\xc3\xb6‘ 舍尔

这个问题可以在插入Elasticsearch之前解决。找到与'\xXX\xXX‘匹配的文本序列,将它们视为UTF-8,并将它们解码为unicode。尝试对数据库进行消毒,并修复将信息放入数据库的方式。

PS:将信息从数据库转移到Elasticsearch的一个更好的做法是使用河文或创建一个脚本,直接将数据发送到Elasticsearch,而不首先将它们保存到文件中。

2016年编辑:现在河流被废弃了,所以你应该发现另一种就像伐木一样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28604455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档