private CompositeItem phraseSegment(BlockItem current, String indexName) { CompositeItem composite; composite = new PhraseSegmentItem(current.getRawWord(), current.stringValue(), true, true); composite.setIndexName(indexName); return composite; }
@NonNull private TaggableItem segment(String field, OperatorNode<ExpressionOperator> ast, String wordData, boolean fromQuery, Class<?> parent, Language language) { String toSegment = wordData; Substring s = getOrigin(ast); Language usedLanguage = language == null ? currentlyParsing.getLanguage() : language; if (s != null) { toSegment = s.getValue(); } List<String> words = segmenter.segment(toSegment, usedLanguage); TaggableItem wordItem; if (words.size() == 0) { wordItem = new WordItem(wordData, fromQuery); } else if (words.size() == 1 || !phraseArgumentSupported(parent)) { wordItem = new WordItem(words.get(0), fromQuery); } else { wordItem = new PhraseSegmentItem(toSegment, fromQuery, false); ((PhraseSegmentItem) wordItem).setIndexName(field); for (String w : words) { WordItem segment = new WordItem(w, fromQuery); prepareWord(field, ast, segment); ((PhraseSegmentItem) wordItem).addItem(segment); } ((PhraseSegmentItem) wordItem).lock(); } return wordItem; }
CompositeItem composite = new PhraseSegmentItem(token.toString(), normalizedToken, true, false, token.substring); int n = 0; for (String segment : segments) {
phrase = new PhraseSegmentItem(origin.getValue(), origin.getValue(), true, !stem, origin); } else { phrase = new AndSegmentItem(origin.getValue(), true, !stem);