场景,一般来说,我们都可以在一些汽车网站上,或者在混合销售多个品牌的汽车4S店的内部,都可以在系统里调出来多个汽车的信息,放在网页上,进行对比
mget,一次性将多个document的数据查询出来,放在一起显示,多个汽车的型号,一次性拿出了多辆汽车的信息
package com.es.app; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.get.MultiGetItemResponse; import org.elasticsearch.action.get.MultiGetResponse; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.action.update.UpdateResponse; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.transport.client.PreBuiltTransportClient; import java.net.InetAddress; public class MgetCarInfoApp { public static void main(String[] args) throws Exception { Settings settings = Settings.builder() .put("cluster.name", "elasticsearch") .put("client.transport.sniff", true) .build(); TransportClient client = new PreBuiltTransportClient(settings) .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); MultiGetResponse multiGetItemResponses = client.prepareMultiGet() .add("car_shop", "cars", "1") .add("car_shop", "cars", "2") .get(); for (MultiGetItemResponse multiGetItemResponse : multiGetItemResponses) { GetResponse getResponse = multiGetItemResponse.getResponse(); if(getResponse.isExists()){ String json = getResponse.getSourceAsString(); System.out.println(json); } } } }
{"brand":"宝马","name":"宝马320","price":310000,"produce_date":"2017-01-01"} {"brand":"宝马","name":"宝马310","price":310000,"produce_date":"2017-02-02"}