![](/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.