/** Creates a new instance and populates the category list params mapping. */ public MultiCategoryListsFacetsExample() { config.setIndexFieldName("Author", "author"); config.setIndexFieldName("Publish Date", "pubdate"); config.setHierarchical("Publish Date", true); }
/** Empty constructor */ public AssociationsFacetsExample() { config = new FacetsConfig(); config.setMultiValued("tags", true); config.setIndexFieldName("tags", "$tags"); config.setMultiValued("genre", true); config.setIndexFieldName("genre", "$genre"); }
switch (template) { case SortedSetDocValuesFacetField: facetsConfig.setIndexFieldName(concreteFieldName, sortedSetFacetField); break; case FacetField: facetsConfig.setIndexFieldName(concreteFieldName, FieldDefinition.TAXONOMY_FACET_FIELD); break; case IntAssociatedField: facetsConfig.setIndexFieldName(concreteFieldName, FieldDefinition.TAXONOMY_INT_ASSOC_FACET_FIELD); break; case FloatAssociatedField: facetsConfig.setIndexFieldName(concreteFieldName, FieldDefinition.TAXONOMY_FLOAT_ASSOC_FACET_FIELD); break; default:
static void facetProvider(final String genericFieldName, final FieldTypeAbstract.Builder<SmartFieldDefinition> builder) { final SmartFieldProviders.FacetFieldProvider provider = new SmartFieldProviders.FacetFieldProvider(genericFieldName); builder.facetConfig(((fieldName, fieldMap, facetsConfig) -> { final String resolvedFieldName = provider.getTextName(fieldName); facetsConfig.setMultiValued(resolvedFieldName, true); facetsConfig.setIndexFieldName(resolvedFieldName, fieldMap.sortedSetFacetField); })); builder.fieldProvider(provider::textField); builder.queryFieldNameProvider(provider::getTextName); }
@Override protected boolean indexFacetProperty(Document doc, int tag, PropertyState property, String pname) { String facetFieldName = FieldNames.createFacetFieldName(pname); getFacetsConfig().setIndexFieldName(pname, facetFieldName); boolean fieldAdded = false; try { if (tag == Type.STRINGS.tag() && property.isArray()) { getFacetsConfig().setMultiValued(pname, true); Iterable<String> values = property.getValue(Type.STRINGS); for (String value : values) { if (value != null && value.length() > 0) { doc.add(new SortedSetDocValuesFacetField(pname, value)); } } fieldAdded = true; } else if (tag == Type.STRING.tag()) { String value = property.getValue(Type.STRING); if (value.length() > 0) { doc.add(new SortedSetDocValuesFacetField(pname, value)); fieldAdded = true; } } } catch (Throwable e) { log.warn("[{}] Ignoring facet property. Could not convert property {} of type {} to type {} for path {}", getIndexName(), pname, Type.fromTag(property.getType().tag(), false), Type.fromTag(tag, false), path, e); } return fieldAdded; }
@Override protected boolean indexFacetProperty(Document doc, int tag, PropertyState property, String pname) { String facetFieldName = FieldNames.createFacetFieldName(pname); getFacetsConfig().setIndexFieldName(pname, facetFieldName); boolean fieldAdded = false; try { if (tag == Type.STRINGS.tag() && property.isArray()) { getFacetsConfig().setMultiValued(pname, true); Iterable<String> values = property.getValue(Type.STRINGS); for (String value : values) { if (value != null && value.length() > 0) { doc.add(new SortedSetDocValuesFacetField(pname, value)); } } fieldAdded = true; } else if (tag == Type.STRING.tag()) { String value = property.getValue(Type.STRING); if (value.length() > 0) { doc.add(new SortedSetDocValuesFacetField(pname, value)); fieldAdded = true; } } } catch (Throwable e) { log.warn("[{}] Ignoring facet property. Could not convert property {} of type {} to type {} for path {}", getIndexName(), pname, Type.fromTag(property.getType().tag(), false), Type.fromTag(tag, false), path, e); } return fieldAdded; }