2013-08-06 38 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)