List of usage examples for com.liferay.portal.kernel.search Field getNumericClass
public Class<? extends Number> getNumericClass()
From source file:com.rknowsys.portal.search.elastic.ElasticsearchIndexWriter.java
License:Open Source License
private String getElasticsearchDocument(Document document) throws IOException { XContentBuilder xContentBuilder = XContentFactory.jsonBuilder(); xContentBuilder.startObject();//from w w w .j ava2 s. c o m Map<String, Field> fields = document.getFields(); for (Field field : fields.values()) { String name = field.getName(); if (!field.isLocalized()) { if (field.isNumeric()) { Class clazz = field.getNumericClass(); if (clazz.equals(Double.class)) { double[] values = GetterUtil.getDoubleValues(field.getValues()); if (values.length > 1) { xContentBuilder.field(name, values); } else { xContentBuilder.field(name, values[0]); } } else if (clazz.equals(Float.class)) { float[] values = GetterUtil.getFloatValues(field.getValues()); if (values.length > 1) { xContentBuilder.field(name, values); } else { xContentBuilder.field(name, values[0]); } } else if (clazz.equals(Integer.class)) { int[] values = GetterUtil.getIntegerValues(field.getValues()); if (values.length > 1) { xContentBuilder.field(name, values); } else { xContentBuilder.field(name, values[0]); } } else { long[] values = GetterUtil.getLongValues(field.getValues()); if (values.length > 1) { xContentBuilder.field(name, values); } else { xContentBuilder.field(name, values[0]); } } } else { if (field.getValues().length > 1) { xContentBuilder.field(name, field.getValues()); } else { xContentBuilder.field(name, field.getValue()); } } } else { Map<Locale, String> localizedValues = field.getLocalizedValues(); for (Map.Entry<Locale, String> entry : localizedValues.entrySet()) { String value = entry.getValue(); if (Validator.isNull(value)) { continue; } Locale locale = entry.getKey(); String languageId = LocaleUtil.toLanguageId(locale); String defaultLanguageId = LocaleUtil.toLanguageId(LocaleUtil.getDefault()); if (languageId.equals(defaultLanguageId)) { xContentBuilder.field(name, value.trim()); } String localizedName = DocumentImpl.getLocalizedName(LocaleUtil.fromLanguageId(languageId), name); xContentBuilder.field(localizedName, value.trim()); } } } xContentBuilder.endObject(); return xContentBuilder.string(); }