![](/img/trans.png)
[英]Searching multiple strings in all fields in Elasticsearch using Java API
[英]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.