@Override
  public void writeResult(Object obj, long searchTime, boolean isSuccess)
      throws ResultWriterException, IOException {
    if (!isSuccess) {
      String errorMsg = null;
      if (obj == null) {
        errorMsg = "null";
      } else {
        errorMsg = obj.toString();
      }
      resultWriter
          .object()
          .key("status")
          .value(1)
          .key("time")
          .value(Formatter.getFormatTime(searchTime))
          .key("total_count")
          .value(0)
          .key("error_msg")
          .value(errorMsg)
          .endObject();
    } else {
      Result result = (Result) obj;

      //			fieldNames = result.getFieldNameList();
      resultWriter
          .object()
          .key("status")
          .value(0)
          .key("time")
          .value(Formatter.getFormatTime(searchTime))
          .key("start")
          .value(result.getStart())
          .key("total_count")
          .value(result.getTotalCount())
          .key("count")
          .value(result.getCount());
      //			.key("field_count").value(fieldNames.length)
      //			.key("fieldname_list")
      //			.array("name");
      //
      //			for (int i = 0; i < fieldNames.length; i++) {
      //				resultWriter.value(fieldNames[i]);
      //			}
      //			resultWriter.endArray();
      writeBody(result, resultWriter, searchTime);
      resultWriter.endObject();

      resultWriter.done();
    }
  }