java for es新手之路

目前用es5.3,较es2.0有很大差别,对用法记录一下。

Spingboot 只集成了es2.0的版本,没有集成5.0以上的,所以只能自己设置esClient,esClient设置有两种方式,用常用的

@Configuration
public class EsClientConfig {

	@Value("${esclient.host}")
	private String host;

	@Value("${esclient.clusterName}")
	private String clusterName;

	@Value("${esclient.port}")
	private int port;

	@Bean(name = "esClient")
	public TransportClient esClient() {

		Settings settings = Settings.builder()
				.put("cluster.name", clusterName)
				.put("client.transport.sniff", true).build();

//5.x 添加了自动嗅探功能,添加一个ip就行。
		TransportClient client = new PreBuiltTransportClient(settings);
		try {
			client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}
		return client;
	}

}

1、es查询demo

根据es查询,es2.0版本用在setType后面有setFields 设置返回字段,此处修改为setFetchSource()

@Service
public class EsService {

    @Autowired
    private TransportClient esClient;

    public  List<Map<String, Object>> getEsResultByFields(String index, String type, int size, String fields){
       // IdsQueryBuilder qb = QueryBuilders.idsQuery();
       // 设置id qb.addIds(id);
//        MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery("",fields);
//        SearchResponse resp = esClient.prepareSearch("ent_index").setTypes("ENT_INDEX").setSize(size).execute().actionGet();
//        List<Map<String, Object>> data = new ArrayList<>();
//        for (SearchHit hit : resp.getHits()) {
//            Map<String, Object> map = hit.getSource();
//            data.add(map);
//        }

        SearchResponse resp = esClient.prepareSearch(index).setTypes(type).setFetchSource(fields.split(","), null).setSize(size).execute().actionGet();
        List<Map<String, Object>> data = new ArrayList<>();
        for (SearchHit hit : resp.getHits()) {
            data.add(hit.getSource());
        }

        return data;
    }

}


2、es聚合demo

http://blog.csdn.net/napoay/article/details/53484730

猜你喜欢

转载自blog.csdn.net/zzhou1990/article/details/78061893