/** * This takes a Map of keys and business object entries and indexes all indexes attributes in one * method call. * * @param entries */ public void indexAll(Map<RK, A> entries) { if (entries.size() > 0) { try { Map<String, Map<RK, String>> fentries = new HashMap<String, Map<RK, String>>(); for (Field f : indexedFields) { Map<RK, String> m = new HashMap<RK, String>(); fentries.put(f.getName(), m); } for (Map.Entry<RK, A> e : entries.entrySet()) { A bo = e.getValue(); RK key = e.getKey(); for (Field f : indexedFields) { String value = (String) f.get(bo); Map<RK, String> m = fentries.get(f.getName()); m.put(key, value); } } for (Field f : indexedFields) { Map<RK, String> m = fentries.get(f.getName()); Index<A, RK> index = getIndex(f.getName()); index.insert(m); } } catch (IllegalAccessException e) { throw new ObjectGridRuntimeException(e); } } }
/** Indexes one token. */ public void insertIntoIndex(int docID, String token, int offset) { index.insert(token, docID, offset); }