private static StringBuilder asHexString(StringBuilder sb, GlobalId gid) { byte[] rawGid = gid.getRawId(); for (byte b : rawGid) { String hex = Integer.toHexString(0xFF & b); if (hex.length() == 1) { sb.append('0'); } sb.append(hex); } return sb; }
public byte[] getGlobalId() { if (globalId == null) { globalId = new GlobalId(id); } return globalId.getRawId(); }
private void encodeDocIds(ByteBuffer buffer) { byte[] emptyGid = new byte[GlobalId.LENGTH]; for (Iterator<Hit> i = result.hits().unorderedDeepIterator(); i.hasNext(); ) { Hit hit = i.next(); if (hit instanceof FastHit && !hit.isFilled(summaryClass)) { FastHit fastHit = (FastHit)hit; buffer.put(fastHit.getGlobalId() != null ? fastHit.getGlobalId().getRawId() : emptyGid); buffer.putInt(fastHit.getPartId()); buffer.putInt(0); //Unused, was docstamp } } }
static private Slime toSlime(String rankProfile, String summaryClass, String docType, SessionId sessionId, List<FastHit> hits) { Slime slime = new Slime(); Cursor root = slime.setObject(); if (summaryClass != null) { root.setString("class", summaryClass); } if (sessionId != null) { root.setData("sessionid", sessionId.asUtf8String().getBytes()); } if (docType != null) { root.setString("doctype", docType); } if (rankProfile != null) { root.setString("ranking", rankProfile); } Cursor gids = root.setArray("gids"); for (FastHit hit : hits) { gids.addData(hit.getGlobalId().getRawId()); } return slime; }