private void removeUnsearchFields(Map<String, Object> sourceMap, Set<String> fields,
			Map<String, Boolean> validateMap) {
		if (sourceMap.get("properties") != null) {
			Map<String, Object> propMap = (Map<String, Object>) sourceMap.get("properties");
			Set<String> keys = propMap.keySet();

			for (String key : keys) {
				if (key.length() > MAX_FIELD_LENGTH) {
					continue;
				}

				if (!validate(key, validateMap)) {
					continue;
				}
				Map<String, Object> fieldProp = (Map<String, Object>) propMap.get(key);
				Object type = fieldProp.get("type");
				if (type != null && type.equals("string")) {
					fields.add(key);
				}
			}
		}
	}