/* * Copyright 2004-2009 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.compass.core; import java.io.Reader; /** * A set of Analyzer related helper methods. Aimed to help understand and simulate * the analysis process. As well as helping build advance query building capabilities. * * @author kimchy */ public interface CompassAnalyzerHelper { /** * Sets the analyzer that will be used for the analysis of the text. * * @param analyzerName The analyzer name that will be used. * @return the analyzer helper * @throws CompassException */ CompassAnalyzerHelper setAnalyzer(String analyzerName) throws CompassException; /** * Sets the analyzer that will be used for the analysis of the text. * Uses the resource to derive the analyzer * that will be used (works also with per resource property analyzer). * * @param resource The resource to derive the analyzer from * @return the analyzer helper * @throws CompassException */ CompassAnalyzerHelper setAnalyzer(Resource resource) throws CompassException; /** * Sets the analyzer that will be used for the analysis of the text. * Uses the alias to get the mapping deinfitions and build a specific analyzer * if there is a certain property that is associated with a specific analyzer * (builds a per resource property analyzer). * * @param alias The alias to derive the analyzer from * @return the analyzer helper * @throws CompassException If the analyzer if not found */ CompassAnalyzerHelper setAnalyzerByAlias(String alias) throws CompassException; /** * Analyzes the given text, returning the first token. * * @param text The text to analyze * @return The first token. * @throws CompassException */ CompassToken analyzeSingle(String text) throws CompassException; /** * Analyzes the given text, returning a set of tokens. * * @param text The text to analyze * @return A set of tokens resulting from the analysis process. * @throws CompassException */ CompassToken[] analyze(String text) throws CompassException; /** * Analyzes the given text, using (if needed) the anlayzer that is bound * to the supplied property. Should be used with {@link #setAnalyzer(Resource)} * so the analyzer can be dynamically detected from the resource. * * @param propertyName The property name for analyze bound properties * @param text The text to analyze * @return A set of tokens resulting from the analysis process. * @throws CompassException */ CompassToken[] analyze(String propertyName, String text) throws CompassException; /** * Analyzes the given text, returning a set of tokens. * * @param textReader The text to analyze * @return A set of tokens resulting from the analysis process. * @throws CompassException */ CompassToken[] analyze(Reader textReader) throws CompassException; /** * Analyzes the given text, using (if needed) the anlayzer that is bound * to the supplied property. Should be used with {@link #setAnalyzer(Resource)} * so the analyzer can be dynamically detected from the resource. * * @param propertyName The property name for analyze bound properties * @param textReader The text to analyze * @return A set of tokens resulting from the analysis process. * @throws CompassException */ CompassToken[] analyze(String propertyName, Reader textReader) throws CompassException; }