【问题标题】:ElasticSearch - Julia弹性搜索 - 朱莉娅
【发布时间】:2020-12-21 13:40:23
【问题描述】:
我正在尝试将 elasticsearch 与 Julia 一起使用,当我尝试连接到 Kibana 中的索引时出现此错误:
PyError ($(Expr(:escape, :(ccall(#= /home/J1028071/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:43 =# @pysym(:PyObject_Call), PyPtr, (PyPtr, PyPtr, PyPtr), o, pyargsptr, kw))))) SerializationError('未知的mimetype,无法反序列化:text/html')
这是我的代码:
using PyCall
es = pyimport(“elasticsearch”)
js = pyimport(“json”)
client = es.Elasticsearch(“http://kibana-cig:5601”)
elastic_info = es.Elasticsearch.info(client)
如果有人遇到过这个错误或知道如何修复它……
感谢您的帮助!
【问题讨论】:
标签:
elasticsearch
connection
julia
【解决方案1】:
您的代码中的问题可能是关于将客户端对象从 Julia 传递回 Python。
顺便说一句,您不需要 Python 的 JSON。 PyCall 会将 Python 字典翻译成 Julia 的Dicts。
这曾经对我有用
using PyCall
es= pyimport("elasticsearch")
client = es.Elasticsearch() #provide con info if needed
现在我只是调用 client 对象的方法而不是传递它:
client.info()
dat = Dict("col1"=>"some text", "col2"=>"more text")
res = client.index(index="data", doc_type="data", id="1", body=dat)
q = Dict("query"=>Dict("match"=>Dict("col1"=>Dict("query"=>"some text"))))
client.search("data",body=q)["hits"]["hits"]
另一件事。您很可能连接到 Kibana GUI 而不是 Elasticsearch API。而是尝试使用:
client = es.Elasticsearch("http://yourelastichostname:5601")
如果有帮助,请告诉我。