gpt4 book ai didi

java - Elasticsearch 1.3。 - 从 Java 调用自定义 REST 端点

转载 作者:搜寻专家 更新时间:2023-10-31 20:34:18 24 4
gpt4 key购买 nike

我目前正在构建一个 elasticsearch 插件,它公开了一个 REST 端点(从这个 post 开始)

我可以像这样用 curl 调用我的端点:

curl -X POST 'http://my-es:9200/lt-dev_terminology_v1/english/_terminology?pretty=-d '{ 
"segment": "database",
"analyzer": "en_analyzer"
}

我的问题是如何使用传输客户端从 java 调用同一个端点?你能给我一些教程吗?

最佳答案

我建议你看看here .这对您来说应该是一个很好的起点。

总结一下:

考虑以下参数:

String clustername = "...";
String clientTransportHost = "...";
Integer clientTransportPort= "...";
String clientIndex = "...";
String indexType = "...";

当然,您可以将这些点替换为您希望使用的设置。

然后定义集群设置:

Settings settings = ImmutableSettings.settingsBuilder()
.put("cluster.name", clustername).build();

实例化 TransportClient 对象:

    TransportClient client =  new TransportClient(settings);
client.addTransportAddress(new InetSocketTransportAddress(clientTransportHost, clientTransportPort));

您可以使用此方法验证您的连接:

private void verifyConnection(TransportClient client) {
ImmutableList<DiscoveryNode> nodes = client.connectedNodes();
if (nodes.isEmpty()) {
throw new ElasticsearchException(
"No nodes available. Verify ES is running!");
} else {
log.info("connected to nodes: " + nodes.toString());
}
}

PS:要使用 log.info() 方法,您必须实例化一个 Logger。

所以现在你可以使用验证方法了:

verifyConnection(client);

完成所有操作后,您现在可以根据示例准备搜索:

SearchResponse response = client.prepareSearch(clientIndex)
.setTypes(indexType)
.addFields("...", "...")
.setSearchType(SearchType.DEFAULT)
.execute()
.actionGet();

PS:在 Elasticsearch 1.3 上测试

关于java - Elasticsearch 1.3。 - 从 Java 调用自定义 REST 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23989930/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com