this
в Javascript всегда ссылается на «владельца» выполняемой функции.
Если явный владелец не определен, то ссылается на самый верхний владелец - объект окна.
Итак, если бы я сделал
function someKindOfFunction() {
this.style = 'foo';
}
element.onclick = someKindOfFunction;
this
, он ссылался бы на объект элемента. Но будьте осторожны, многие люди делают эту ошибку
<element onclick="someKindOfFunction()">
В последнем случае вы просто ссылаетесь на функцию, а не передаете ее элементу. Поэтому this
будет ссылаться на объект окна.
Да, мы используем RHLC с AWS. Вот образец, который должен заставить вас идти в правильном направлении. Это демонстрирует прямой вызов (что, вероятно, актуально для большего числа читателей), но его можно легко адаптировать для соответствия вашим потребностям в туннелировании, настроив параметры подключения (хост, порт, протокол).
private static final String HOST = "your-es-endpoint.es.amazonaws.com";
private static final int PORT = 443;
private static final String PROTOCOL = "https";
private static final RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost(HOST, PORT, PROTOCOL)));
public static void getESDocs() {
try {
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.matchAllQuery()); // adjust search logic here
SearchRequest searchRequest = new SearchRequest("your-index-here");
searchRequest.source(sourceBuilder);
final SearchResponse searchResponse = client.search(searchRequest);
/* process results here... */
}
} catch (Exception e) {
/* handle connection/proc error here */
} finally {
client.close(); // example to release driver resource (see doc link)
}
}
Этот пример эффективен для версии 6.3.x (YMMV): API-документация