簡體   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