代码之家  ›  专栏  ›  技术社区  ›  william007

调用Analyze with python for elasticsearch 6.x

  •  0
  • william007  · 技术社区  · 7 年前

    如何执行的呼叫

    POST my_index/_analyze
    {
      "analyzer": "german_analyzer",
      "text": "kann"
    }
    

    在python弹性搜索6.x API中?

    我试过

    def get_es():
    
        # Variables for Elasticsearch host+port
        es_host = 'localhost'
        es_port = 9200
    
        from elasticsearch import Elasticsearch
        es = Elasticsearch([{'host': es_host, 'port': es_port}])
        return es
    
    if __name__ == '__main__':
    
        es = get_es()
        body={
          "analyzer": "german_analyzer",
          "text": "kann"
        }
        result = es.search(index="faq-kbaid-de-index", body=body,
                                   size=1)
        i=1
    

    它给出了例外

    elasticsearch.exceptions.RequestError: RequestError(400, 'parsing_exception', 'Unknown key for a VALUE_STRING in [analyzer].')
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   william007    7 年前

    试试这个:

    def get_es():
    
        # Variables for Elasticsearch host+port
        es_host = 'localhost'
        es_port = 9200
    
        from elasticsearch import Elasticsearch
        es = Elasticsearch([{'host': es_host, 'port': es_port}])
        return es
    
    if __name__ == '__main__':
        from elasticsearch import client
        es = get_es()
        indexES = client.IndicesClient(es)
        body={
          "analyzer": "german_analyzer",
          "text": "kann"
        }
        result = indexES.analyze(index="faq-kbaid-de-index", body=body)
        i=1