2013-08-06 65 views
0

我希望使用Java API進行彈性搜索來執行此查詢。對於模糊查詢,我如何獲得「prefix_length」參數?Elasticsearch帶前綴長度的java API模糊搜索

查詢:

{"query":{"bool":{"should":[ 

    {"fuzzy":{"object.name":{"value":"appl", "max_expansions":"1", "prefix_length" : 3}}}, 

    {"prefix":{"object.name":"appl"}}, 

    {"term":{"object.name":"appl"}} 

]}}} 

的Java API:

QueryBuilder result = QueryBuilders.boolQuery() 
      .minimumNumberShouldMatch(1) 
      .should(QueryBuilders.fuzzyQuery(Company.FIELD_NAME, query)) ... 

文檔here沒有解釋如何得到 「的prefix_length」 的說法。有人可以解釋嗎?謝謝!

回答

0

啊哈。可以這樣添加:

should(QueryBuilders.fuzzyQuery(Company.FIELD_NAME, query).maxExpansions(1).prefixLength(query.length() - 1)