进阶-第83__熟练掌握ES Java API_基于mget实现多辆汽车的配置与价格对比

 

场景,一般来说,我们都可以在一些汽车网站上,或者在混合销售多个品牌的汽车4S店的内部,都可以在系统里调出来多个汽车的信息,放在网页上,进行对比

 

mget,一次性将多个document的数据查询出来,放在一起显示,多个汽车的型号,一次性拿出了多辆汽车的信息

插入测试数据

PUT /car_shop/cars/2

{

        "brand": "奔驰",

        "name": "奔驰C200",

        "price": 350000,

        "produce_date": "2017-01-05"

}

 

 

基于mget实现多辆汽车的配置与价格的查询

 

package com.es.core.senior;

import java.net.InetAddress;

import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.get.MultiGetItemResponse;
import org.elasticsearch.action.get.MultiGetResponse;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.client.PreBuiltTransportClient;

public class MGetMultiCarInfoApp {

    @SuppressWarnings({"resource", "unchecked"})
    public static void main(String[] args) throws Exception {
        Settings settings = Settings
                .builder()
                .put("cluster.name", "elasticsearch")
                .build();
        TransportClient client = new PreBuiltTransportClient(settings)
                .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

        MultiGetResponse multiGetResponse = client.prepareMultiGet()
                .add("car_shop", "cars", "1")
                .add("car_shop", "cars", "2")
                .get();
        for (MultiGetItemResponse multiGetItemResponse :
                multiGetResponse) {
            GetResponse response = multiGetItemResponse.getResponse();
            if (response.isExists()) {
                System.out.println(response.getSourceAsString());
            }
        }
        client.close();


    }

}

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_35524586/article/details/88706213
今日推荐