PathHierarchyTokenizerFactory (Lucene 10.5.0 common API)
Description: declaration: package: org.apache.lucene.analysis.path, class: PathHierarchyTokenizerFactory

Package org.apache.lucene.analysis.path

# Class PathHierarchyTokenizerFactory

java.lang.Object
org.apache.lucene.analysis.AbstractAnalysisFactory
org.apache.lucene.analysis.TokenizerFactory
org.apache.lucene.analysis.path.PathHierarchyTokenizerFactory

public class PathHierarchyTokenizerFactory extends TokenizerFactory
Factory for `PathHierarchyTokenizer`.

This factory is typically configured for use only in the `index` Analyzer (or only in the `query` Analyzer, but never both).

For example, in the configuration below a query for `Books/NonFic` will match documents indexed with values like `Books/NonFic`, `Books/NonFic/Law`, `Books/NonFic/Science/Physics`, etc. But it will not match documents indexed with values like `Books`, or `Books/Fic`...

     <fieldType name="descendent_path" class="solr.TextField">
       <analyzer type="index">
         <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
       </analyzer>
       <analyzer type="query">
         <tokenizer class="solr.KeywordTokenizerFactory" />
       </analyzer>
     </fieldType>

In this example however we see the oposite configuration, so that a query for `Books/NonFic/Science/Physics` would match documents containing `Books/NonFic`, `Books/NonFic/Science`, or `Books/NonFic/Science/Physics`, but not `Books/NonFic/Science/Physics/Theory` or `Books/NonFic/Law`.

     <fieldType name="descendent_path" class="solr.TextField">
       <analyzer type="index">
         <tokenizer class="solr.KeywordTokenizerFactory" />
       </analyzer>
       <analyzer type="query">
         <tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
       </analyzer>
     </fieldType>

Since:
  3.1
SPI Name (case-insensitive: if the name is 'htmlStrip', 'htmlstrip' can be used when looking up the service).
  "pathHierarchy"

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `NAME`
  SPI name

  ### Fields inherited from class org.apache.lucene.analysis.AbstractAnalysisFactory

  `LUCENE_MATCH_VERSION_PARAM, luceneMatchVersion`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PathHierarchyTokenizerFactory()`
  Default ctor for compatibility with SPI
  `PathHierarchyTokenizerFactory(Map<String,String> args)`
  Creates a new PathHierarchyTokenizerFactory

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Tokenizer`
  `create(AttributeFactory factory)`

  ### Methods inherited from class org.apache.lucene.analysis.TokenizerFactory

  `availableTokenizers, create, findSPIName, forName, lookupClass, reloadTokenizers`

  ### Methods inherited from class org.apache.lucene.analysis.AbstractAnalysisFactory

  `defaultCtorException, get, get, get, get, get, getBoolean, getChar, getClassArg, getFloat, getInt, getLines, getLuceneMatchVersion, getOriginalArgs, getPattern, getSet, getSnowballWordSet, getWordSet, isExplicitLuceneMatchVersion, require, require, require, requireBoolean, requireChar, requireFloat, requireInt, setExplicitLuceneMatchVersion, splitAt, splitFileNames`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### NAME

    public static final String NAME
    SPI name
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### PathHierarchyTokenizerFactory

    public PathHierarchyTokenizerFactory(Map<String,String> args)
    Creates a new PathHierarchyTokenizerFactory

  - ### PathHierarchyTokenizerFactory

    public PathHierarchyTokenizerFactory()
    Default ctor for compatibility with SPI

- ## Method Details

  - ### create

    public Tokenizer create(AttributeFactory factory)
    Specified by:
      `create` in class `TokenizerFactory`