java elasticsearch 6.4.2 client

<dependency>
			<groupId>org.elasticsearch</groupId>
			<artifactId>elasticsearch</artifactId>
			<version>6.4.2</version>
		</dependency>

		<dependency>
			<groupId>org.elasticsearch.client</groupId>
			<artifactId>elasticsearch-rest-high-level-client</artifactId>
			<version>6.4.2</version>
			<exclusions>
				<exclusion>
					<artifactId>commons-codec</artifactId>
					<groupId>commons-codec</groupId>
				</exclusion>
				<!--此处要排除掉自带的,这个自带的版本低,会报错-->
				<exclusion>
					<artifactId>elasticsearch</artifactId>
					<groupId>org.elasticsearch</groupId>
				</exclusion>
			</exclusions>
		</dependency>
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.*;
import org.elasticsearch.script.Script;
import org.elasticsearch.script.ScriptType;
import org.elasticsearch.search.builder.SearchSourceBuilder;

RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("127.0.0.1", 9200, "http")));

        /*创建索引*/
      CreateIndexRequest request = new CreateIndexRequest("test");

        Map<String, Object> jsonMap = new HashMap<>();
        Map<String, Object> message = new HashMap<>();
        message.put("type", "text");

        Map<String, Object> messageInt = new HashMap<>();
        messageInt.put("type", "long");
        Map<String, Object> messageKeyword = new HashMap<>();
        messageKeyword.put("type", "keyword");

        Map<String, Object> properties = new HashMap<>();
        properties.put("userId", messageInt);
        properties.put("userName", message);
        properties.put("email", messageKeyword);
        Map<String, Object> mapping = new HashMap<>();
        mapping.put("properties", properties);
        jsonMap.put("test", mapping);
        request.mapping("test", jsonMap);
        client.indices().create(request,RequestOptions.DEFAULT);

       /*向索引添加数据*/
       for(long i = 2; i < 1000l; i++)
       {
           Map<String,Object> data = new HashMap<>();
           data.put("userId",i);
           data.put("userName","username"+1);
           data.put("email", "username"+i+"@qq.com");
           IndexRequest request = new IndexRequest("test","test");
           request.source(JSON.toJSONString(data), XContentType.JSON);
           client.index(request,RequestOptions.DEFAULT);
       }

        /*条件查询*/
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("userName", "username1","username2");
        SearchRequest request = new SearchRequest("test");
        request.types("test");
        sourceBuilder.query(termsQueryBuilder);
        request.source(sourceBuilder);
        SearchResponse searchResponse = client.search(request,RequestOptions.DEFAULT);
        Map<String,Object> map = searchResponse.getHits().getAt(0).getSourceAsMap();
        System.out.println(searchResponse);



        /*脚本查询*/
        ScriptQueryBuilder scriptQueryBuilder = QueryBuilders.scriptQuery(new Script(ScriptType.INLINE, Script.DEFAULT_SCRIPT_LANG,"doc['userId'].value%100==0", new HashMap<>()));
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        SearchRequest request = new SearchRequest("test");
        request.types("test");
        sourceBuilder.query(scriptQueryBuilder);
        request.source(sourceBuilder);
        SearchResponse searchResponse = client.search(request,RequestOptions.DEFAULT);
        Map<String,Object> map = searchResponse.getHits().getAt(0).getSourceAsMap();
        for (int i = 0; i < searchResponse.getHits().getHits().length; i++)
        {
            System.out.println(searchResponse.getHits().getAt(i).getSourceAsString());
        }

        /*多条件查询*/
        ScriptQueryBuilder scriptQueryBuilder = QueryBuilders.scriptQuery(new Script(ScriptType.INLINE, Script.DEFAULT_SCRIPT_LANG,"doc['userId'].value%100==0", new HashMap<>()));
        TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("email", "username300@qq.com","username510@qq.com");
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery().must(scriptQueryBuilder).must(termsQueryBuilder);
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        SearchRequest request = new SearchRequest("test");
        request.types("test");
        sourceBuilder.query(boolQueryBuilder);
        request.source(sourceBuilder);
        SearchResponse searchResponse = client.search(request,RequestOptions.DEFAULT);
        for (int i = 0; i < searchResponse.getHits().getHits().length; i++)
        {
            System.out.println(searchResponse.getHits().getAt(i).getSourceAsString());
        }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值