elasticsearch 弹性搜索中get请求的CSV响应,elasticsearch,elasticsearch" /> elasticsearch 弹性搜索中get请求的CSV响应,elasticsearch,elasticsearch" />

elasticsearch 弹性搜索中get请求的CSV响应

elasticsearch 弹性搜索中get请求的CSV响应,elasticsearch,elasticsearch,我正在向elastic search server发送一个http Get请求,我希望响应为csv格式。就像在solr中一样,我们可以指定wt=csv。在elastic search中也有任何方法吗? 我的问题是: enter code here http://elasticServer/_search?q=RCE:"some date" OR VENDOR_NAME:"Anuj"&from=0&size=5&sort=@timestamp -----Aft

我正在向elastic search server发送一个http Get请求,我希望响应为csv格式。就像在solr中一样,我们可以指定wt=csv。在elastic search中也有任何方法吗? 我的问题是:

enter code here
 http://elasticServer/_search?q=RCE:"some date" OR 
 VENDOR_NAME:"Anuj"&from=0&size=5&sort=@timestamp


  -----After that i want to force the server to return me response in csv format  

默认情况下,ES只支持两种数据格式:JSON和YAML。但是,如果您愿意使用Logstash,您可以很容易地实现您想要的:

input {
  elasticsearch {
    hosts => ["localhost:9200"]
    query => 'RCE:"some date" OR VENDOR_NAME:"Anuj"'
    size => 5
  }
}
filter {}
output {
  csv {
    fields => ["field1", "field2", "field3"]
    path => "/path/to/data.csv"
  }
}
input {
  http_poller {
    urls => {
      es => {
        method => get
        url => 'http://elasticServer/_search?q=RCE:"some date" OR VENDOR_NAME:"Anuj"&from=0&size=5&sort=@timestamp'
        headers => {
          Accept => "application/json"
        }
      }
    }
    codec => "json"
  }
}
filter {}
output {
  csv {
    fields => ["field1", "field2", "field3"]
    path => "/path/to/data.csv"
  }
}
由于
elasticsearch
输入使用滚动,因此不能指定任何排序。因此,如果排序对您非常重要,您可以使用而不是
elasticsearch
one,如下所示:

input {
  elasticsearch {
    hosts => ["localhost:9200"]
    query => 'RCE:"some date" OR VENDOR_NAME:"Anuj"'
    size => 5
  }
}
filter {}
output {
  csv {
    fields => ["field1", "field2", "field3"]
    path => "/path/to/data.csv"
  }
}
input {
  http_poller {
    urls => {
      es => {
        method => get
        url => 'http://elasticServer/_search?q=RCE:"some date" OR VENDOR_NAME:"Anuj"&from=0&size=5&sort=@timestamp'
        headers => {
          Accept => "application/json"
        }
      }
    }
    codec => "json"
  }
}
filter {}
output {
  csv {
    fields => ["field1", "field2", "field3"]
    path => "/path/to/data.csv"
  }
}

默认情况下,ES只支持两种数据格式:JSON和YAML。但是,如果您愿意使用Logstash,您可以很容易地实现您想要的:

input {
  elasticsearch {
    hosts => ["localhost:9200"]
    query => 'RCE:"some date" OR VENDOR_NAME:"Anuj"'
    size => 5
  }
}
filter {}
output {
  csv {
    fields => ["field1", "field2", "field3"]
    path => "/path/to/data.csv"
  }
}
input {
  http_poller {
    urls => {
      es => {
        method => get
        url => 'http://elasticServer/_search?q=RCE:"some date" OR VENDOR_NAME:"Anuj"&from=0&size=5&sort=@timestamp'
        headers => {
          Accept => "application/json"
        }
      }
    }
    codec => "json"
  }
}
filter {}
output {
  csv {
    fields => ["field1", "field2", "field3"]
    path => "/path/to/data.csv"
  }
}
由于
elasticsearch
输入使用滚动,因此不能指定任何排序。因此,如果排序对您非常重要,您可以使用而不是
elasticsearch
one,如下所示:

input {
  elasticsearch {
    hosts => ["localhost:9200"]
    query => 'RCE:"some date" OR VENDOR_NAME:"Anuj"'
    size => 5
  }
}
filter {}
output {
  csv {
    fields => ["field1", "field2", "field3"]
    path => "/path/to/data.csv"
  }
}
input {
  http_poller {
    urls => {
      es => {
        method => get
        url => 'http://elasticServer/_search?q=RCE:"some date" OR VENDOR_NAME:"Anuj"&from=0&size=5&sort=@timestamp'
        headers => {
          Accept => "application/json"
        }
      }
    }
    codec => "json"
  }
}
filter {}
output {
  csv {
    fields => ["field1", "field2", "field3"]
    path => "/path/to/data.csv"
  }
}

Github上有一个名为ElasticSearch的插件,它应该满足您的要求。

Github上有一个名为ElasticSearch的插件,它应该满足您的要求。

感谢您的回复java中是否支持Logstash?如何使用Logstash使用java进行查询,UILogstash是一个ETL工具。您可以像上面所示那样配置它,然后运行它。你不能通过Java来调用它。您可以尝试@volatievar在其答案中建议的方法,这可能在Java中起作用。感谢您的回复Java中是否支持Logstash?如何使用Logstash使用java进行查询,UILogstash是一个ETL工具。您可以像上面所示那样配置它,然后运行它。你不能通过Java来调用它。您可以尝试@volatievar在他的答案中建议的方法,这可能适用于Java。我们可以在Java中使用它吗?简短的回答是肯定的,因为它不依赖于语言。这是一个用于ElasticSearch的插件。您只需安装它(如此处所示),就可以使用任何Java HTTP客户端发出HTTP GET请求,以获取csv格式的数据。由于我们在本地未使用弹性服务器,我们已将其部署到需要在那里安装该插件或需要在系统中安装该插件的某些位置。因为我正在运行一个窗口环境。谢谢你的进一步帮助。请回复backSure——您需要在安装ElasticSearch的系统上安装插件。非常感谢@volativevarcan,我们在Java中使用它。简短的回答是肯定的,因为它不依赖于语言。这是一个用于ElasticSearch的插件。您只需安装它(如此处所示),就可以使用任何Java HTTP客户端发出HTTP GET请求,以获取csv格式的数据。由于我们在本地未使用弹性服务器,我们已将其部署到需要在那里安装该插件或需要在系统中安装该插件的某些位置。因为我正在运行一个窗口环境。谢谢你的进一步帮助。请回复backSure——您需要在安装ElasticSearch的系统上安装插件。非常感谢@volatievar