Hello Mingchun.
Perhaps it can not "uninvert" (obtain docValues/fieldcache -like
representation) for a text field.
facet=enum uses inverted index to deal with text fields: it just loops term
dictionary and check an intersection count between result docset and term's
docset.
>From the other side: analysis is not applied for string fields that does
not allow to apply a tokenizer.
However if an application code create pathes /a /a/b /a/b/c itself,
faceting over doc values will work.

On Thu, Feb 6, 2025 at 2:56 AM Mingchun Zhao <mingchun.zha...@gmail.com>
wrote:

> Hi,
>
> Why does faceting not work in Solr 9.8 when using PathHierarchyTokenizer
> for facet.field without specifying the facet.method=enum parameter?
>
> Here are the details:
>
> - fieldType
>
> ```xml
> <fieldType name="path_hierarchy" class="solr.TextField">
> <analyzer type="index">
> <tokenizer name="pathHierarchy" delimiter="/"/>
> </analyzer>
> <analyzer type="query">
> <tokenizer name="keyword"/>
> </analyzer>
> </fieldType>
> ```
>
> - field
>
> ```xml
> <field name="category_path" type="path_hierarchy" indexed="true" stored=
> "false" required="false" multiValued="false"/>
> ```
>
> - index data
>
> ```json
> [
> {
> "id": "1",
> "category_path": "foo/bar/baz"
> }
> ]
> ```
>
> - query without facet.method=enum
>
> ```bash
> curl "
>
> http://localhost:8983/solr/core/select?q=*:*&facet=true&facet.field=category_path
> "
> ```
>
> ```json
> "facet_counts":{
> "facet_queries":{ },
> "facet_fields":{
> "category_path":[ ]
> },
> "facet_ranges":{ },
> "facet_intervals":{ },
> "facet_heatmaps":{ }
> }
> ```
>
> - query with facet.method=enum
>
> ```bash
> curl "
>
> http://localhost:8983/solr/core/select?q=*:*&facet=true&facet.field=category_path&facet.method=enum
> "
> ```
>
> ```json
> "facet_counts":{
> "facet_queries":{ },
> "facet_fields":{
> "category_path":["foo",1,"foo/bar",1,"foo/bar/baz",1]
> },
> "facet_ranges":{ },
> "facet_intervals":{ },
> "facet_heatmaps":{ }
> }
> ```
>
> Regards,
> Mingchun
>


-- 
Sincerely yours
Mikhail Khludnev

Reply via email to