从golang包'弹性'中使用BulkIndexRequest

时间:2017-07-26 11:48:30

标签: elasticsearch go elasticsearch-bulk-api

我想使用Go package BulkIndexRequest中的elastic。我试图找到例子,但似乎它们不存在。所以,如果有人使用它,你可以帮我用它来创建如下所示的请求吗?

curl -s -H "Content-Type: application/json" -XPOST localhost:9200/someindex/sometype/_bulk -d'
{ "index": {"_id": "existing_id"}}
{ "field1": "test1"}
{ "index": {"_id": "existing_id2"}}
{ "field2": "test2"}
'

1 个答案:

答案 0 :(得分:2)

您可以在test classes中找到一些示例,并且相当不错explained in the wiki。它是这样的:

var url_of_announcements_page = "https://sites.google.com/announcements-page-link"; 
var who_to_email = Session.getActiveUser().getEmail();

function emailAnnouncements(){
  var page = SitesApp.getPageByUrl(url_of_announcements_page); 
  if(page.getPageType() == SitesApp.PageType.ANNOUNCEMENTS_PAGE){ 

    var announcements = page.getAnnouncements({ start: 0,
                                               max: 10,
                                               includeDrafts: false,
                                               includeDeleted: false});
    announcements.reverse();                                    
    for(var i in announcements) { 
      var ann = announcements[i]; 
      var updated = ann.getLastUpdated().getTime(); 
      if (updated > PropertiesService.getScriptProperties().getProperty("last-update")){ 
        var options = {}; 

        options.htmlBody = Utilities.formatString("<h1><a href='%s'>%s</a></h1>%s", ann.getUrl(), ann.getTitle(), ann.getHtmlContent());

        MailApp.sendEmail(who_to_email, "Announcement "+ann.getTitle(), ann.getTextContent()+"\n\n"+ann.getUrl(), options);

        PropertiesService.getScriptProperties().setProperty('last-update',updated);
      }
    }
  }
}

function setup(){
 PropertiesService.getScriptProperties().setProperty('last-update',new Date().getTime());
}