PathHierarchyTokenizer.java

  1. // Copyright (c) Microsoft Corporation. All rights reserved.
  2. // Licensed under the MIT License.

  3. package com.azure.search.documents.indexes.models;

  4. import com.azure.core.annotation.Fluent;
  5. import com.fasterxml.jackson.annotation.JsonProperty;
  6. import com.fasterxml.jackson.annotation.JsonTypeInfo;
  7. import com.fasterxml.jackson.annotation.JsonTypeName;

  8. /**
  9.  * Tokenizer for path-like hierarchies. This tokenizer is implemented using
  10.  * Apache Lucene.
  11.  */
  12. @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@odata.type")
  13. @JsonTypeName("#Microsoft.Azure.Search.PathHierarchyTokenizerV2")
  14. @Fluent
  15. public final class PathHierarchyTokenizer extends LexicalTokenizer {
  16.     /*
  17.      * The delimiter character to use. Default is "/".
  18.      */
  19.     @JsonProperty(value = "delimiter")
  20.     private Character delimiter;

  21.     /*
  22.      * A value that, if set, replaces the delimiter character. Default is "/".
  23.      */
  24.     @JsonProperty(value = "replacement")
  25.     private Character replacement;

  26.     /*
  27.      * The maximum token length. Default and maximum is 300.
  28.      */
  29.     @JsonProperty(value = "maxTokenLength")
  30.     private Integer maxTokenLength;

  31.     /*
  32.      * A value indicating whether to generate tokens in reverse order. Default
  33.      * is false.
  34.      */
  35.     @JsonProperty(value = "reverse")
  36.     private Boolean tokenOrderReversed;

  37.     /*
  38.      * The number of initial tokens to skip. Default is 0.
  39.      */
  40.     @JsonProperty(value = "skip")
  41.     private Integer numberOfTokensToSkip;

  42.     /**
  43.      * Constructor of {@link PathHierarchyTokenizer}.
  44.      *
  45.      * @param name The name of the tokenizer. It must only contain letters, digits, spaces,
  46.      * dashes or underscores, can only start and end with alphanumeric
  47.      * characters, and is limited to 128 characters.
  48.      */
  49.     public PathHierarchyTokenizer(String name) {
  50.         super(name);
  51.     }

  52.     /**
  53.      * Get the delimiter property: The delimiter character to use. Default is
  54.      * "/".
  55.      *
  56.      * @return the delimiter value.
  57.      */
  58.     public Character getDelimiter() {
  59.         return this.delimiter;
  60.     }

  61.     /**
  62.      * Set the delimiter property: The delimiter character to use. Default is
  63.      * "/".
  64.      *
  65.      * @param delimiter the delimiter value to set.
  66.      * @return the PathHierarchyTokenizerV2 object itself.
  67.      */
  68.     public PathHierarchyTokenizer setDelimiter(Character delimiter) {
  69.         this.delimiter = delimiter;
  70.         return this;
  71.     }

  72.     /**
  73.      * Get the replacement property: A value that, if set, replaces the
  74.      * delimiter character. Default is "/".
  75.      *
  76.      * @return the replacement value.
  77.      */
  78.     public Character getReplacement() {
  79.         return this.replacement;
  80.     }

  81.     /**
  82.      * Set the replacement property: A value that, if set, replaces the
  83.      * delimiter character. Default is "/".
  84.      *
  85.      * @param replacement the replacement value to set.
  86.      * @return the PathHierarchyTokenizerV2 object itself.
  87.      */
  88.     public PathHierarchyTokenizer setReplacement(Character replacement) {
  89.         this.replacement = replacement;
  90.         return this;
  91.     }

  92.     /**
  93.      * Get the maxTokenLength property: The maximum token length. Default and
  94.      * maximum is 300.
  95.      *
  96.      * @return the maxTokenLength value.
  97.      */
  98.     public Integer getMaxTokenLength() {
  99.         return this.maxTokenLength;
  100.     }

  101.     /**
  102.      * Set the maxTokenLength property: The maximum token length. Default and
  103.      * maximum is 300.
  104.      *
  105.      * @param maxTokenLength the maxTokenLength value to set.
  106.      * @return the PathHierarchyTokenizerV2 object itself.
  107.      */
  108.     public PathHierarchyTokenizer setMaxTokenLength(Integer maxTokenLength) {
  109.         this.maxTokenLength = maxTokenLength;
  110.         return this;
  111.     }

  112.     /**
  113.      * Get the reverseTokenOrder property: A value indicating whether to
  114.      * generate tokens in reverse order. Default is false.
  115.      *
  116.      * @return the reverseTokenOrder value.
  117.      */
  118.     public Boolean isTokenOrderReversed() {
  119.         return this.tokenOrderReversed;
  120.     }

  121.     /**
  122.      * Set the reverseTokenOrder property: A value indicating whether to
  123.      * generate tokens in reverse order. Default is false.
  124.      *
  125.      * @param tokenOrderReversed the reverseTokenOrder value to set.
  126.      * @return the PathHierarchyTokenizerV2 object itself.
  127.      */
  128.     public PathHierarchyTokenizer setTokenOrderReversed(Boolean tokenOrderReversed) {
  129.         this.tokenOrderReversed = tokenOrderReversed;
  130.         return this;
  131.     }

  132.     /**
  133.      * Get the numberOfTokensToSkip property: The number of initial tokens to
  134.      * skip. Default is 0.
  135.      *
  136.      * @return the numberOfTokensToSkip value.
  137.      */
  138.     public Integer getNumberOfTokensToSkip() {
  139.         return this.numberOfTokensToSkip;
  140.     }

  141.     /**
  142.      * Set the numberOfTokensToSkip property: The number of initial tokens to
  143.      * skip. Default is 0.
  144.      *
  145.      * @param numberOfTokensToSkip the numberOfTokensToSkip value to set.
  146.      * @return the PathHierarchyTokenizerV2 object itself.
  147.      */
  148.     public PathHierarchyTokenizer setNumberOfTokensToSkip(Integer numberOfTokensToSkip) {
  149.         this.numberOfTokensToSkip = numberOfTokensToSkip;
  150.         return this;
  151.     }
  152. }