繁体   English   中英

使用Java API搜索多个Elasticsearch的索引

[英]Searching multiple elasticsearch's indexes using Java API

能够搜索具有一个索引的elasticsearch,但是我想搜索多个索引和源。

请找到下面的代码,这些代码用于在一个index和一个单一source上进行搜索

private final String INDEX = "my_index";
private final String TYPE = "doc";
private final String SOURCE = "doct_name";

GetRequest getRequest = new GetRequest(INDEX, TYPE, SOURCE);
getRequest.routing(name);

GetResponse getResponse = null;

try {
    getResponse = restHighLevelClient.get(getRequest);
} catch (java.io.IOException e){
    e.getLocalizedMessage();
}
SearchRequest searchRequest = new SearchRequest(INDEX); 
searchRequest.types(TYPE);

String star="*";
String query=star.concat(name).concat("*");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
QueryStringQueryBuilder qsQueryBuilder = new QueryStringQueryBuilder(query); 
qsQueryBuilder.defaultField("*");
searchSourceBuilder.query(qsQueryBuilder); 
searchRequest.source(searchSourceBuilder);
SearchResponse searchResponse = null;
try {
     searchResponse = restHighLevelClient.search(searchRequest);
} catch (IOException e) {
    e.getLocalizedMessage();
}

只需使用SearchRequest的varargs构造函数即可传递多个索引名称。

根据索引构造一个新的搜索请求。 此处未提供索引意味着搜索将针对所有索引进行。

SearchRequest searchRequest = new SearchRequest(INDEX, INDEX2)

您可以使用带有数组索引的Searchrequest构造函数。

String indices[]-{INDEX, INDEX2}

this.searchRequest = new SearchRequest(indices);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM