Elasticsearch 之(46) Java API 基于mget实现多辆汽车的配置与价格对比
场景,一般来说,我们都可以在一些汽车网站上,或者在混合销售多个品牌的汽车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"}
浙公网安备 33010602011771号