如何在 ES API Java 中制作 mutilple 索引



我的索引是:https://URL/bpa_stag_v3_2016*,bpa_stag_v3_2017/orders_suppliers_stats_ag/_search我正在使用 API Java 进行弹性搜索,但它不起作用.

  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方法(此处为 javadoc(中将可变数量的索引作为 var-args 传递:

public SearchRequestBuilder prepareSearch(String... indices)

使用查询搜索一个或多个索引以及一个或多个类型。

因此,在您的情况下,它将是:

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

要使用 Java API 搜索多个索引,您应该将索引名称作为多个参数传递(而不是作为单个逗号分隔的字符串......

像这样:client.prepareSearch("bpa_stag_v3_2016*", "bpa_stag_v3_2017")

请参阅此处的示例 https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-search.html。

最新更新