XMLUtil.parentWithChild(context, doc, gid, -1);
context.parentWithChild(doc, gid, false, true, -1);
		public boolean indexInfo(Value key, long pointer) {			String word;			try {				word =					new String(key.getData(), 2, key.getLength() - 2, "UTF-8");			} catch (UnsupportedEncodingException uee) {				word = new String(key.getData(), 2, key.getLength() - 2);			}			if (matcher.matches(word, regexp)) {				InputStream dis = null;				try {					dis = dbWords.getAsStream(pointer);				} catch (IOException ioe) {					LOG.warn(ioe.getMessage(), ioe);				}				if (dis == null)					return true;				int k = 0;				int docId;				int len;				long gid;				long last = -1;				long delta;				int sizeHint = -1;				DocumentImpl doc;				NodeProxy parent;				VariableByteInputStream is = new VariableByteInputStream(dis);				try {					while (is.available() > 0) {						docId = is.readInt();						len = is.readInt();						if ((doc = docs.getDoc(docId)) == null) {							is.skip(len);							continue;						}						if(context != null)							sizeHint = context.getSizeHint(doc);						last = -1;						for (int j = 0; j < len; j++) {							delta = is.readLong();							gid = (last < 0 ? delta : last + delta);							last = gid;							if (context != null) {								parent =									XMLUtil.parentWithChild(context, doc, gid, -1);								if (parent != null) {									if (!result.contains(parent))										result.add(parent, sizeHint);									if (trackMatches != Serializer.TAG_NONE)										parent.addMatch(new Match(word, gid));								}							} else								((TextSearchResult) result).add(doc, gid, word);						}					}				} catch (EOFException e) {					// EOFExceptions are normal				} catch (IOException e) {					LOG.warn("io error while reading index", e);				}				try {					dis.close();				} catch (IOException e1) {				}			}			if(context != null)				((ExtArrayNodeSet)result).sort();			return true;		}