【问题标题】: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")
    

    如果有帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 2018-11-27
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 2018-03-25
      • 2014-02-04
      • 2014-12-31
      • 2017-01-15
      • 2016-02-18
      相关资源
      最近更新 更多