You can use either the "doc values" implementation for facets (SortedSetDocValuesFacetField), or the "taxonomy" implementation (FacetField, in which case, yes, you need to create a TaxonomyWriter).
It used to be that the "doc values" based faceting did not support arbitrary hierarchy, but I think that was fixed at some point. Mike McCandless http://blog.mikemccandless.com On Fri, Oct 20, 2023 at 9:03 AM Michael Wechner <michael.wech...@wyona.com> wrote: > Hi Mike > > Thanks for your feedback! > > IIUC in order to have the actual advantages of Facets one has to > "connect" it with a TaxonomyWriter > > FacetsConfig config = new FacetsConfig(); > DirectoryTaxonomyWriter taxoWriter = new DirectoryTaxonomyWriter(taxoDir); > indexWriter.addDocument(config.build(taxoWriter, doc)); > > right? > > Thanks > > Michael > > > > > Am 20.10.23 um 12:19 schrieb Michael McCandless: > > There are some differences. > > > > StringField is indexed into the inverted index (postings) so you can do > > efficient filtering. You can also store in stored fields to retrieve. > > > > FacetField does everything StringField does (filtering, storing > (maybe?)), > > but in addition it stores data for faceting. I.e. you can compute facet > > counts or simple aggregations at search time. > > > > FacetField is also hierarchical: you can filter and facet by different > > points/levels of your hierarchy. > > > > Mike McCandless > > > > http://blog.mikemccandless.com > > > > > > On Fri, Oct 20, 2023 at 5:43 AM Michael Wechner < > michael.wech...@wyona.com> > > wrote: > > > >> Hi > >> > >> I have found the following simple Facet Example > >> > >> > >> > https://github.com/apache/lucene/blob/main/lucene/demo/src/java/org/apache/lucene/demo/facet/SimpleFacetsExample.java > >> > >> whereas for a simple categorization of documents I currently use > >> StringField, e.g. > >> > >> doc1.add(new StringField("category", "book")); > >> doc1.add(new StringField("category", "quantum_physics")); > >> doc1.add(new StringField("category", "Neumann")) > >> doc1.add(new StringField("category", "Wheeler")) > >> > >> doc2.add(new StringField("category", "magazine")); > >> doc2.add(new StringField("category", "astro_physics")); > >> > >> which works well, but would it be better to use Facets for this, e.g. > >> > >> doc1.add(new FacetField("media-type", "book")); > >> doc1.add(new FacetField("topic", "physics", "quantum"); > >> doc1.add(new FacetField("author", "Neumann"); > >> doc1.add(new FacetField("author", "Wheeler"); > >> > >> doc1.add(new FacetField("media-type", "magazine")); > >> doc1.add(new FacetField("topic", "physics", "astro"); > >> > >> ? > >> > >> IIUC the StringField approach is more general, whereas the FacetField > >> approach allows to do a more specific categorization / search. > >> Or do I misunderstand this? > >> > >> Thanks > >> > >> Michael > >> > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > >> For additional commands, e-mail: java-user-h...@lucene.apache.org > >> > >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org > For additional commands, e-mail: java-user-h...@lucene.apache.org > >