使用Java API时如何在ElasticSearch中使用特定的分析器

时间:2012-04-19 21:42:00

标签: java elasticsearch

我正在尝试使用Java API在ElasticSearch中运行特定搜索。它运作良好,但我需要使用雪球分析仪。

我真正想要的是实现这种搜索: http://localhost:9200/myindex/myfeed/_search?q=myterm:myvalue&analyzer=myanalyzer 使用Java API。

我正在使用具有许多不同类型查询的TransportClient(已过滤,匹配全部,文本)。我正在批量运行多个搜索查询。

我没有在SearchRequestBuilder中看到任何与分析器相关的内容。我在找错了地方吗?

1 个答案:

答案 0 :(得分:5)

您的请求将转换为

    client.prepareSearch("myindex", "myfeed")
            .setQuery(
                    QueryBuilders.queryString("myterm:myvalue")
                            .analyzer("myanalyzer")
            )
            .execute()
            .actionGet();

一般情况下,当您遇到将Rest API请求转换为JavaAPI请求的问题时,请查看Rest ??? Action类,其中???是您的请求的名称。例如,如果您想了解有关构建搜索请求的更多信息,请查看RestSearchAction.java。您还可以在elasticsearch integration tests中找到许多java API示例。