场景,一般来说,我们都可以在一些汽车网站上,或者在混合销售多个品牌的汽车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();
}
} |