2017-06-22 11 views
0

私のインデックスはhttps://URL/bpa_stag_v3_2016*,bpa_stag_v3_2017/orders_suppliers_stats_ag/_search 私はElastic検索にapi javaを使用していますが、うまくいきませんでした。ES APIでmutilpleインデックスを作成する方法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); 

答えて

1

NodeClientTransportClientによって拡張される)ElasticsearchのAbstractClientクラスのドキュメントあたり、あなたはprepareSearch方法(Javadocのhere)にVAR-引数としてインデックスの可変数を渡すことができるように:

public SearchRequestBuilder prepareSearch(String... indices) 

クエリで1つ以上のインデックスと1つ以上のタイプを検索します。

だから、あなたの場合には、それは次のようになります。

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

インデックスはbpa_stag_v3_2016 *の回答を修正することができますか?インデックスは動的なので、2016年と2017年のすべてのインデックスが必要です。 – YasBES

+0

@YasBES完了、今すぐどうぞ? –

1

の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の例を参照してください。

+0

私の指数のが動的であるので、私は2016年と2017年にすべてのインデックスを必要とするので、あなたは、インデックスbpa_stag_v3_2016 * *とのためのあなたの答えを修正してくださいすることができます – YasBES

関連する問題