我正在使用ElasticSearch java客户端作为Maven依赖项:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>1.7.1</version>
</dependency>
我正在使用多索引进行搜索,我正在使用IndexMissingException
并且我想使用参数忽略它:' ignore_unavailable '但我不知道如何使用它,并没有找到关于此的文档。
https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-index.html(关于ignore_unavailable的链接)
我正在创建这样的搜索:
SearchRequestBuilder srb = ess.getClient()
.prepareSearch(generateIndex(query)) //generateIndex returns a array
.setTypes("mytype")
.setSearchType(SearchType.DFS_QUERY_AND_FETCH)
.setPostFilter(FilterBuilders.rangeFilter("Time")
.from(time1.toInstant(ZoneOffset.UTC))
.to(time2.toInstant(ZoneOffset.UTC))
)
.setFrom(0).setSize(RESULT_MAX).setExplain(true)
//putHeader don't work...
.putHeader("ignore_unavailable", true);
如何在此处使用ignore_unavalilable?
答案 0 :(得分:6)
您需要使用setIndicesOptions(IndicesOptions)
- 例如
.prepareSearch(generateIndex(query))
.setIndicesOptions(IndicesOptions.fromOptions(true, false, false, false))
您也可以使用IndicesOptions.lenientExpandOpen()
代替fromOptions()
。