使用es方法的时候,会有两种,一种是有prepareXXX的前缀的方法,另一种是没有的,问题就是这两种方法效果是一样的,还是不一样的啊?有时候使用挺迷惑的,如果两种的效果一样,es提供一种就可以了吧,例如:
																				/**
     * Indices Exists.
     *
     * @param request The indices exists request
     * @return The result future
     * @see Requests#indicesExistsRequest(String...)
     */
    ActionFuture<IndicesExistsResponse> exists(IndicesExistsRequest request);
/**
     * Indices exists.
     */
    IndicesExistsRequestBuilder prepareExists(String... indices);
 
	
1 个回复
jianjianhe
赞同来自:
从es代码可以看出,第一种是一个异步操作,返回的是一个future对象,而第二种是一个无返回值的方法,但是提供一个监听器,可以监听response响应,而第三种也是最常用的方法,因为该方法可以同步也可以异步,也可以添加监听器,我觉得平时用第三种prepare前缀的方法比较方便吧