es中new HttpHost和Http.create的区别
我们在进行es测试的时候,会对client对象的创建进行测试,发现将测试代码
@BeforeEach//
void setUp(){
this.client = new RestHighLevelClient(
RestClient.builder(
new HttpHost("http://192.168.101.100:9200")
)
);
}
代码报错

修改之后:


这个细节报错所以我们就要去明白,一个是new,一个是create,同样都是类似创建一个对象的方法到底有什么区别。
new HttpHost("http://192.168.101.100:9200") 是使用 Apache HttpComponents 库创建一个新的 HttpHost 对象,该对象表示要连接的主机和端口。这种方法适用于使用 Apache HttpComponents 库进行更高级别的自定义配置和操作。
Http.create("http://192.168.101.100:9200") 是使用 Elasticsearch 客户端库(例如 Elasticsearch High-Level REST Client)提供的静态方法 Http.create 来创建一个新的 RestClient 对象。这种方法是为了简化 Elasticsearch 客户端的使用,并提供一些预定义的功能和配置。
所以,区别在于使用的库和创建的对象类型。前者是 Apache HttpComponents 库中的 HttpHost 对象,后者是 Elasticsearch 客户端库中的 RestClient 对象。
因此我们在es中需要的是restclient对象,因此我们需要用http.create方法进行对象的创建,大家也可以通过将鼠标放在类的名字上查看返回的对象,或者看继承的类或实现的类来观察他返回对象的类别。
文章比较了在Elasticsearch测试中使用newHttpHost和Http.create创建client对象的区别,指出Http.create是Elasticsearch客户端提供的简化方法,适合快速创建RestClient对象,而newHttpHost则用于ApacheHttpComponents库的高级定制。
6222

被折叠的 条评论
为什么被折叠?



