es 新 search api 如何设置 type?

2019-04-24 16:48:41 +08:00
 cirton

刚接触 es,目前使用 7.0 版本 在查阅最新的 api 时,没找到哪个方法可以设置 type

        SearchRequest searchRequest = new SearchRequest();
		searchRequest.indices("post");
 		
        
        searchRequest.types("doc");  //该方法已经被废弃
        
		SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
		searchSourceBuilder.query(QueryBuilders.termQuery("ap", "3500"));		
		searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));

		searchRequest.source(searchSourceBuilder);
		SearchResponse request = client.search(searchRequest, RequestOptions.DEFAULT);
        

不管是否使用 searchRequest.types("doc");设置 type 最后都可以正常返回结果,但同时还是会抛如下异常: “ org.elasticsearch.action.ActionRequestValidationException: Validation Failed: 1: index is missing;2: source is missing;3: content type is missing;”

2508 次点击
所在节点    程序员
2 条回复
fishioon
2019-04-24 17:32:52 +08:00
新版本 type 已经被废弃了
freebird1994
2019-04-24 17:49:14 +08:00
SearchRequest searchRequest = new SearchRequest(index).types(type).source(sourceBuilder);

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/558309

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX