public static String createCategorizedQuery(final FieldCategorizedCriterion criterion, final FulltextIndexSchema schema) {
final String field = criterion.getField();
String value = criterion.getValue();
if (anyEmpty(field, value)) {
return "";
}
final Metadata metadata = schema.getMetadata(field);
if (metadata != null && !metadata.isSet(Property.TOKENIZED)) {
final String escapedCategory = Formatter.escapeSpecialSymbols(criterion.getCategorization());
final String escapedValue = Formatter.escapeSpecialSymbols(value);
value = Formatter.getCategorizedTerm(escapedCategory, escapedValue);
return Formatter.nameValuePair(field, value, Boolean.TRUE);
} else {
throw new GeneralServiceException("Cannot make categorized query on tokenized (or missing) field: {}", field);
}
}