private static PhraseQuery build(String fieldName, String fieldValue, int gramSize) { Preconditions.checkArgument(fieldValue.length()>=gramSize); PhraseQuery.Builder builder = new PhraseQuery.Builder(); try (NGramTokenizer tokenizer = new NGramTokenizer(gramSize, gramSize)) { tokenizer.setReader(new StringReader(fieldValue.toLowerCase())); tokenizer.reset(); while (tokenizer.incrementToken()) { builder.add(new Term(fieldName, tokenizer.getAttribute(CharTermAttribute.class).toString())); } } catch (IOException e) { throw new RuntimeException(e); } return builder.build(); }
try { if ((null != tokenizer) && tokenizer.incrementToken()) { final CharTermAttribute charTermAttribute = tokenizer.getAttribute(CharTermAttribute.class); if (null != charTermAttribute) { ngram = charTermAttribute.toString();