java - 如何在ES API Java中创建多重索引

标签 java elasticsearch

我的索引是:https://URL/bpa_stag_v3_2016*,bpa_stag_v3_2017/orders_suppliers_stats_ag/_search 我正在使用 api java 进行 Elasticsearch ,但它不起作用。

  String indexForTwoYear = ConfiguratorDao.CURRENT_ENV.getAliasPrefix() + String.valueOf(previousYear) + "*,"
                    + ConfiguratorDao.CURRENT_ENV.getAliasPrefix() + String.valueOf(currentYear) + "*";



            SearchRequestBuilder requestBuilder = client.prepareSearch(indexForTwoYear)
                    .setTypes(IndexTypeEnum.SUPPLIERS_AGGREGATION.getValue()).setQuery(queryBuilder).setSize(1);

最佳答案

根据 Elasticsearch 的 AbstractClient 类(由 NodeClientTransportClient 扩展)的文档,您可以传递可变数量的索引作为 prepareSearch 方法中的 var-args (javadoc here ):

public SearchRequestBuilder prepareSearch(String... indices)

Search across one or more indices and one or more types with a query.

所以,就你的情况而言,它是:

client.prepareSearch("pa_stag_v3_2016*","bpa_stag_v3_2017")

关于java - 如何在ES API Java中创建多重索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44702021/

相关文章:

elasticsearch - 查找包含带有特殊字符的子字符串的文档

java - ServerSocket 是否为每个连接创建一个新套接字?

elasticsearch - Elasticsearch查询别名并通过路由给出部分结果

elasticsearch - Elastic Search 7.5中的父子关系

ruby-on-rails - 包括有关在Elasticsearch on Rails(Gem Tire)上搜索的其他表格

elasticsearch - 在query_string中搜索多个值 Elasticsearch

java - 获取一周中特定日期的日期

java - 创建对象并从文件中读取

java - 排除从 Grails 中的查询中检索 'id'

java - 如何访问 Thymeleaf 模板中的系统属性?