private void addLiterals(RankItem rankTerms, Item item, IndexFacts.Session indexFacts) { if (item == null) return; if (item instanceof NotItem) { addLiterals(rankTerms, ((NotItem) item).getPositiveItem(), indexFacts); } else if (item instanceof CompositeItem) { for (Iterator<Item> i = ((CompositeItem)item).getItemIterator(); i.hasNext(); ) addLiterals(rankTerms, i.next(), indexFacts); } else if (item instanceof TermItem) { TermItem termItem = (TermItem)item; Index index = indexFacts.getIndex(termItem.getIndexName()); if (index.getLiteralBoost()) rankTerms.addItem(new WordItem(toLowerCase(termItem.getRawWord()), index.getName() + "_literal")); } }