/** Sole constructor. */ public SortedSetDocValuesFacetField(String dim, String label) { super("dummy", TYPE); FacetField.verifyLabel(label); FacetField.verifyLabel(dim); this.dim = dim; this.label = label; }
protected IndexableField buildFacetField(String f, Object val) { String[] path = null; if (val instanceof String) { path = ((String) val).split("/"); // path = new String[1]; // path[0] = (String) val; } else if (val instanceof Iterable) { Iterable iterable = (Iterable) val; List<String> values = new ArrayList<String>(); for (Object s : iterable) { if (s instanceof String) { values.add((String) s); } else { throw new OIndexEngineException("Cannot facet value " + val + " because it is not a string", null); } } path = values.toArray(new String[values.size()]); } return new FacetField(f, path); }
@Override public void getNextFacets(List<FacetField> facets) throws NoMoreDataException, IOException { facets.clear(); int numFacets = 1 + random.nextInt(maxDocFacets); // at least one facet to each doc for (int i = 0; i < numFacets; i++) { int depth; if (maxFacetDepth == 2) { depth = 2; } else { depth = 2 + random.nextInt(maxFacetDepth-2); // depth < 2 is not useful } String dim = Integer.toString(random.nextInt(maxDims)); String[] components = new String[depth-1]; for (int k = 0; k < depth-1; k++) { components[k] = Integer.toString(random.nextInt(maxValue)); addItem(); } FacetField ff = new FacetField(dim, components); facets.add(ff); addBytes(ff.toString().length()); // very rough approximation } }
/** Build the example index. */ private void index() throws IOException { IndexWriter indexWriter = new IndexWriter(indexDir, new IndexWriterConfig( new WhitespaceAnalyzer()).setOpenMode(OpenMode.CREATE)); // Writes facet ords to a separate directory from the main index DirectoryTaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(taxoDir); Document doc = new Document(); doc.add(new FacetField("Author", "Bob")); doc.add(new FacetField("Publish Date", "2010", "10", "15")); indexWriter.addDocument(config.build(taxoWriter, doc)); doc = new Document(); doc.add(new FacetField("Author", "Lisa")); doc.add(new FacetField("Publish Date", "2010", "10", "20")); indexWriter.addDocument(config.build(taxoWriter, doc)); doc = new Document(); doc.add(new FacetField("Author", "Lisa")); doc.add(new FacetField("Publish Date", "2012", "1", "1")); indexWriter.addDocument(config.build(taxoWriter, doc)); doc = new Document(); doc.add(new FacetField("Author", "Susan")); doc.add(new FacetField("Publish Date", "2012", "1", "7")); indexWriter.addDocument(config.build(taxoWriter, doc)); doc = new Document(); doc.add(new FacetField("Author", "Frank")); doc.add(new FacetField("Publish Date", "1999", "5", "5")); indexWriter.addDocument(config.build(taxoWriter, doc)); indexWriter.close(); taxoWriter.close(); }
private void addFacet(Document doc, String facetName, String value) { if (!value.isEmpty()) { doc.add(new FacetField(facetName, value)); doc.add(new StringField(FacetsConfig.DEFAULT_INDEX_FIELD_NAME + "." + facetName, new BytesRef(value), Store.NO)); } }
/** Sole constructor. */ public SortedSetDocValuesFacetField(String dim, String label) { super("dummy", TYPE); FacetField.verifyLabel(label); FacetField.verifyLabel(dim); this.dim = dim; this.label = label; }
/** Build the example index. */ private void index() throws IOException { IndexWriter indexWriter = new IndexWriter(indexDir, new IndexWriterConfig( new WhitespaceAnalyzer()).setOpenMode(OpenMode.CREATE)); // Writes facet ords to a separate directory from the main index DirectoryTaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(taxoDir); Document doc = new Document(); doc.add(new FacetField("Author", "Bob")); doc.add(new FacetField("Publish Date", "2010", "10", "15")); indexWriter.addDocument(config.build(taxoWriter, doc)); doc = new Document(); doc.add(new FacetField("Author", "Lisa")); doc.add(new FacetField("Publish Date", "2010", "10", "20")); indexWriter.addDocument(config.build(taxoWriter, doc)); doc = new Document(); doc.add(new FacetField("Author", "Lisa")); doc.add(new FacetField("Publish Date", "2012", "1", "1")); indexWriter.addDocument(config.build(taxoWriter, doc)); doc = new Document(); doc.add(new FacetField("Author", "Susan")); doc.add(new FacetField("Publish Date", "2012", "1", "7")); indexWriter.addDocument(config.build(taxoWriter, doc)); doc = new Document(); doc.add(new FacetField("Author", "Frank")); doc.add(new FacetField("Publish Date", "1999", "5", "5")); indexWriter.addDocument(config.build(taxoWriter, doc)); indexWriter.close(); taxoWriter.close(); }
/** Creates the this from {@code dim} and * {@code path}. */ public FacetField(String dim, String... path) { super("dummy", TYPE); verifyLabel(dim); for(String label : path) { verifyLabel(label); } this.dim = dim; if (path.length == 0) { throw new IllegalArgumentException("path must have at least one element"); } this.path = path; }
@Override void newFieldNoStore(String fieldName, Object value, FieldConsumer consumer) { final String stringValue = getStringValue(value); if (stringValue != null) consumer.accept(genericFieldName, fieldName, new FacetField(fieldName, stringValue)); } }
/** Creates the this from {@code dim} and * {@code path}. */ public FacetField(String dim, String... path) { super("dummy", TYPE); verifyLabel(dim); for(String label : path) { verifyLabel(label); } this.dim = dim; if (path.length == 0) { throw new IllegalArgumentException("path must have at least one element"); } this.path = path; }
@Override final protected void fillArray(final String fieldName, final String[] values, final FieldConsumer consumer) { consumer.accept(genericFieldName, fieldName, new FacetField(fieldName, values)); if (store) consumer.accept(genericFieldName, fieldName, new StoredField(fieldName, Arrays.toString(values))); }
/** Creates this from {@code dim} and {@code path} and an * association */ public AssociationFacetField(BytesRef assoc, String dim, String... path) { super("dummy", TYPE); FacetField.verifyLabel(dim); for(String label : path) { FacetField.verifyLabel(label); } this.dim = dim; this.assoc = assoc; if (path.length == 0) { throw new IllegalArgumentException("path must have at least one element"); } this.path = path; }
/** Build the example index. */ private void index() throws IOException { IndexWriter indexWriter = new IndexWriter(indexDir, new IndexWriterConfig( new WhitespaceAnalyzer()).setOpenMode(OpenMode.CREATE)); // Writes facet ords to a separate directory from the main index DirectoryTaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(taxoDir); Document doc = new Document(); doc.add(new TextField("c", "foo bar", Store.NO)); doc.add(new NumericDocValuesField("popularity", 5L)); doc.add(new FacetField("A", "B")); indexWriter.addDocument(config.build(taxoWriter, doc)); doc = new Document(); doc.add(new TextField("c", "foo foo bar", Store.NO)); doc.add(new NumericDocValuesField("popularity", 3L)); doc.add(new FacetField("A", "C")); indexWriter.addDocument(config.build(taxoWriter, doc)); indexWriter.close(); taxoWriter.close(); }
/** Creates this from {@code dim} and {@code path} and an * association */ public AssociationFacetField(BytesRef assoc, String dim, String... path) { super("dummy", TYPE); FacetField.verifyLabel(dim); for(String label : path) { FacetField.verifyLabel(label); } this.dim = dim; this.assoc = assoc; if (path.length == 0) { throw new IllegalArgumentException("path must have at least one element"); } this.path = path; }
try { facetArray = values.split(analyticsFacetConfig.getFacetSplitter(tableName, field)); doc.add(new FacetField(field, facetArray)); } catch (IllegalArgumentException e) { if (analyticsFacetConfig.isEnabled()) { doc.add(new FacetField(field, facetElements.toArray(new String[facetElements.size()]))); } catch (IllegalArgumentException err) { log.error("Ignoring the record to be indexed as facet, Record details: " +
@Override void newFieldWithStore(String fieldName, Object value, FieldConsumer consumer) { final String stringValue = getStringValue(value); if (stringValue == null) return; consumer.accept(genericFieldName, fieldName, new FacetField(fieldName, stringValue)); consumer.accept(genericFieldName, fieldName, new StoredField(fieldName, stringValue)); }