【问题标题】:Use ignore_unavailable parameter in ElasticSearch Java client在 ElasticSearch Java 客户端中使用 ignore_unavailable 参数
【发布时间】:2015-08-17 09:25:05
【问题描述】:

我使用 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?

【问题讨论】:

    标签: java elasticsearch


    【解决方案1】:

    您需要使用setIndicesOptions(IndicesOptions) - 例如。

    .prepareSearch(generateIndex(query))
    .setIndicesOptions(IndicesOptions.fromOptions(true, false, false, false))
    

    您也可以使用IndicesOptions.lenientExpandOpen() 而不是调用fromOptions()

    【讨论】:

    • 您能否提供一些上下文,我可以在哪里设置全局索引选项?在我的例子中,elasticsearch 是使用 application.properties 自动配置的,所以没有其他配置文件
    • 这些是查询时选项,告诉搜索者忽略任何丢失的索引。这不是一个全局应用程序级设置。请记住,这个答案现在已经很老了,下面@Shivam 的答案可能对您更有用。
    【解决方案2】:

    在旧版本的 ES 中,我们可以使用 -

    esClient.prepareSearch(allIndices)
            .setIndicesOptions(IndicesOptions.lenientExpandOpen())
    

    在较新的版本中 -

    SearchRequest searchRequest = new SearchRequest(indices, searchSourceBuilder);
    searchRequest.indicesOptions(IndicesOptions.lenientExpandOpen());
    

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 2012-05-13
      相关资源
      最近更新 更多