AnalyzeTextOptions.java
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
package com.azure.search.documents.indexes.models;
import com.azure.core.annotation.Fluent;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Arrays;
import java.util.List;
/**
* Specifies some text and analysis components used to break that text into
* tokens.
*/
@Fluent
public final class AnalyzeTextOptions {
/*
* The text to break into tokens.
*/
@JsonProperty(value = "text", required = true)
private final String text;
/*
* The name of the analyzer to use to break the given text.
*/
@JsonProperty(value = "analyzer")
private LexicalAnalyzerName analyzerName;
/*
* The name of the tokenizer to use to break the given text.
*/
@JsonProperty(value = "tokenizer")
private LexicalTokenizerName tokenizerName;
/*
* The name of the normalizer to use to normalize the given text.
*/
@JsonProperty(value = "normalizer")
private LexicalNormalizerName normalizerName;
/*
* An optional list of token filters to use when breaking the given text.
*/
@JsonProperty(value = "tokenFilters")
private List<TokenFilterName> tokenFilters;
/*
* An optional list of character filters to use when breaking the given
* text.
*/
@JsonProperty(value = "charFilters")
private List<CharFilterName> charFilters;
/**
* Constructor to {@link AnalyzeTextOptions} which takes analyzerName.
*
* @param text The text break into tokens.
* @param analyzerName The name of the analyzer to use to break the given text.
*/
public AnalyzeTextOptions(String text, LexicalAnalyzerName analyzerName) {
this.text = text;
this.analyzerName = analyzerName;
this.tokenizerName = null;
this.normalizerName = null;
}
/**
* Constructor to {@link AnalyzeTextOptions} which takes tokenizerName.
*
* @param text The text break into tokens.
* @param tokenizerName The name of the tokenizer to use to break the given text.
*/
public AnalyzeTextOptions(String text, LexicalTokenizerName tokenizerName) {
this.text = text;
this.tokenizerName = tokenizerName;
this.analyzerName = null;
this.normalizerName = null;
}
/**
* Constructor to {@link AnalyzeTextOptions} which takes normalizerName.
*
* @param text The text break into tokens.
* @param normalizerName The name of the normalizer to use to break the given text.
*/
public AnalyzeTextOptions(String text, LexicalNormalizerName normalizerName) {
this.text = text;
this.normalizerName = normalizerName;
this.analyzerName = null;
this.tokenizerName = null;
}
/**
* Get the text property: The text to break into tokens.
*
* @return the text value.
*/
public String getText() {
return this.text;
}
/**
* Get the analyzer name property: The name of the analyzer to use to break the given text.
*
* @return the analyzer value.
*/
public LexicalAnalyzerName getAnalyzerName() {
return this.analyzerName;
}
/**
* Get the tokenizer name property: The name of the tokenizer to use to break the given text.
*
* @return the tokenizer value.
*/
public LexicalTokenizerName getTokenizerName() {
return this.tokenizerName;
}
/**
* Get the normalizer name property: The name of the normalizer to use to normalize the given text.
*
* @return the normalizer value.
*/
public LexicalNormalizerName getNormalizer() {
return this.normalizerName;
}
/**
* Get the tokenFilters property: An optional list of token filters to use when breaking the given text.
*
* @return the tokenFilters value.
*/
public List<TokenFilterName> getTokenFilters() {
return this.tokenFilters;
}
/**
* Set the tokenFilters property: An optional list of token filters to use when breaking the given text.
*
* @param tokenFilters the tokenFilters value to set.
* @return the AnalyzeRequest object itself.
*/
public AnalyzeTextOptions setTokenFilters(TokenFilterName... tokenFilters) {
this.tokenFilters = (tokenFilters == null) ? null : Arrays.asList(tokenFilters);
return this;
}
/**
* Get the charFilters property: An optional list of character filters to use when breaking the given text.
*
* @return the charFilters value.
*/
public List<CharFilterName> getCharFilters() {
return this.charFilters;
}
/**
* Set the charFilters property: An optional list of character filters to use when breaking the given text.
*
* @param charFilters the charFilters value to set.
* @return the AnalyzeRequest object itself.
*/
public AnalyzeTextOptions setCharFilters(CharFilterName... charFilters) {
this.charFilters = (charFilters == null) ? null : Arrays.asList(charFilters);
return this;
}
}