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

在Python中使用multi\u匹配和Elasticsearch批量扫描

  •  0
  • Steven  · 技术社区  · 6 年前

    我试着用 multi_match 使用 elasticsearch-py 图书馆。

    设置如下:

      res = helpers.scan(es, index="allcomms", query = {
          "multi_match" : {
          "query":    'multiple terms', 
          "fields": ["text"] 
      }})
    

    我得到:

    RequestError:RequestError(400,'解析\u异常','的未知键 [multi\u match]中的START\u对象。“)

    有人知道有没有一种方法可以使用Elasticsearch py库进行此搜索吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Kamal Kunjapur    6 年前

    我认为这个问题是不正确的。每当我们观察 parsing_exception 然后我们需要首先确保我们的查询可以通过 Kibana Postman 或任何其他 RESTful client application 指向ES实例。

    您的代码必须采用以下格式。

    res = helpers.scan(es, index="allcomms", query = { "query" : {
          "multi_match" : {
          "query": "multiple terms", 
          "fields": ["text"] 
      }}})
    

    基本上下面是你的 multi-match 查询将是

    POST <your_index_name>/_search
    {  
       "query":{  
          "multi_match":{  
             "query":"multiple terms",
             "fields":[  
                "text"
             ]
          }
       }
    }