2012-04-19 17 views
3

我正嘗試使用Java API在ElasticSearch中運行特定搜索。它運作良好,但我需要使用雪球分析儀。如何在使用Java API時在ElasticSearch中使用特定分析器

我真正想要的是實現這種搜索: http://localhost:9200/myindex/myfeed/_search?q=myterm:myvalue&analyzer=myanalyzer 使用Java API。

我正在使用具有許多不同類型的查詢(過濾,匹配所有文本)的TransportClient。我正在批量運行多個搜索查詢。

我在SearchRequestBuilder中沒有看到與分析器相關的任何內容。我看錯了地方?

回答

5

你的要求會轉化爲

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

一般情況下,當你正在運行到翻譯REST API請求轉換成的JavaAPI請求的問題,看看在休息??? Action類,其中???是您的請求的名稱。例如,如果您想了解有關構建搜索請求的更多信息,請參閱RestSearchAction.java。您還可以在elasticsearch integration tests中找到許多java API示例。

+0

謝謝。我意識到,並非每個QueryBuilder都實現了'analyzer()'函數。我試圖儘可能通用,但如果我在構建適當的查詢時指定分析器(在我的情況下爲textQuery),它就可以工作。謝謝。 – AlexBergeron 2012-04-20 13:25:42

相關問題