@Override public Document asDocument(NewsItem newsItem) { Document doc = new Document(); doc.add(new IntField(ITEM_ID, newsItem.itemID(), Field.Store.YES)); doc.add(new StringFieldWithTermVectors(YEAR, String.valueOf(newsItem.date().getYear()))); doc.add(new StringFieldWithTermVectors(MONTH, String.valueOf(newsItem.date().getMonth()))); doc.add(new StringFieldWithTermVectors(DAY, String.valueOf(newsItem.date().getDay()))); doc.add(new TextFieldWithTermVectors(TITLE, newsItem.title())); doc.add(new TextFieldWithTermVectors(HEADLINE, newsItem.headline())); doc.add(new TextFieldWithTermVectors(DATELINE, newsItem.dateline())); doc.add(new TextFieldWithTermVectors(TEXT, newsItem.text())); for (Map.Entry<String, String> entry : newsItem.codes().entries()) { doc.add(new StringFieldWithTermVectors(entry.getKey(), entry.getValue())); } for (Map.Entry<String, String> entry : newsItem.dcs().entrySet()) { doc.add(new StringFieldWithTermVectors(entry.getKey(), entry.getValue())); } return doc; }