public void writeBody(Result result, ResponseWriter resultWriter, long searchTime) throws ResultWriterException { String[] fieldNames = result.getFieldNameList(); String thumbnailField = setting.getThumbnailField(); String titleField = setting.getTitleField(); String bodyField = setting.getBodyField(); Set<String> thumbnailIdSet = findIdList(thumbnailField); Set<String> titleIdSet = findIdList(titleField); Set<String> bodyIdSet = findIdList(bodyField); resultWriter.key("result"); // data Row[] rows = result.getData(); if (rows.length == 0) { resultWriter.array("item").endArray(); } else { resultWriter.array("item"); for (int i = 0; i < rows.length; i++) { Row row = rows[i]; resultWriter.object(); /* * 1. title * */ resultWriter.key("thumbnail"); Iterator<String> iter = thumbnailIdSet.iterator(); String thumbnailData = thumbnailField; while (iter.hasNext()) { String fieldId = iter.next(); String fieldData = getFieldData(fieldId, row, fieldNames); thumbnailData = thumbnailData.replaceAll("\\$" + fieldId, fieldData); } resultWriter.value(thumbnailData); /* * 2. title * */ resultWriter.key("title"); iter = titleIdSet.iterator(); String titleData = titleField; while (iter.hasNext()) { String fieldId = iter.next(); String fieldData = getFieldData(fieldId, row, fieldNames); titleData = titleData.replaceAll("\\$" + fieldId, fieldData); } resultWriter.value(titleData); /* * 3. body * */ String bodyData = bodyField; resultWriter.key("body"); iter = bodyIdSet.iterator(); while (iter.hasNext()) { String fieldId = iter.next(); String fieldData = getFieldData(fieldId, row, fieldNames); bodyData = bodyData.replaceAll("\\$" + fieldId, fieldData); } resultWriter.value(bodyData); resultWriter.endObject(); } resultWriter.endArray(); // GroupResults groupResult = result.getGroupResult(); // // new GroupResultWriter(null).writeBody(groupResult, resultWriter); } }