/* * 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.engine; import java.io.Reader; import org.compass.core.Resource; import org.compass.core.engine.SearchEngineQuery.SearchEngineSpanQuery; /** * @author kimchy */ public interface SearchEngineQueryBuilder { public static interface SearchEngineToQuery { SearchEngineQuery toQuery(); } public static interface SearchEngineBooleanQueryBuilder extends SearchEngineToQuery { SearchEngineBooleanQueryBuilder addMust(SearchEngineQuery query); SearchEngineBooleanQueryBuilder addMustNot(SearchEngineQuery query); SearchEngineBooleanQueryBuilder addShould(SearchEngineQuery query); SearchEngineBooleanQueryBuilder setMinimumNumberShouldMatch(int min); } public static interface SearchEngineMultiPhraseQueryBuilder extends SearchEngineToQuery { SearchEngineMultiPhraseQueryBuilder setSlop(int slop); SearchEngineMultiPhraseQueryBuilder add(String value); SearchEngineMultiPhraseQueryBuilder add(String value, int position); SearchEngineMultiPhraseQueryBuilder add(String[] values); SearchEngineMultiPhraseQueryBuilder add(String[] values, int position); } public static interface SearchEngineQueryStringBuilder extends SearchEngineToQuery { SearchEngineQueryStringBuilder setAnalyzer(String analyzer); SearchEngineQueryStringBuilder setAnalyzerByAlias(String alias); SearchEngineQueryStringBuilder setDefaultSearchProperty(String defaultSearchProperty); SearchEngineQueryStringBuilder useAndDefaultOperator(); SearchEngineQueryStringBuilder useOrDefaultOperator(); SearchEngineQueryStringBuilder forceAnalyzer(); SearchEngineQueryStringBuilder setQueryParser(String queryParser); SearchEngineQueryStringBuilder useSpellCheck(); } public static interface SearchEngineMultiPropertyQueryStringBuilder extends SearchEngineToQuery { SearchEngineMultiPropertyQueryStringBuilder setAnalyzer(String analyzer); SearchEngineMultiPropertyQueryStringBuilder setAnalyzerByAlias(String alias); SearchEngineMultiPropertyQueryStringBuilder add(String resourcePropertyName); SearchEngineMultiPropertyQueryStringBuilder useAndDefaultOperator(); SearchEngineMultiPropertyQueryStringBuilder useOrDefaultOperator(); SearchEngineQueryBuilder.SearchEngineMultiPropertyQueryStringBuilder forceAnalyzer(); SearchEngineMultiPropertyQueryStringBuilder setQueryParser(String queryParser); SearchEngineQueryBuilder.SearchEngineMultiPropertyQueryStringBuilder useSpellCheck(); } public static interface SearchEngineQuerySpanNearBuilder { SearchEngineQuerySpanNearBuilder setSlop(int slop); SearchEngineQuerySpanNearBuilder setInOrder(boolean inOrder); SearchEngineQuerySpanNearBuilder add(String value); SearchEngineQuerySpanNearBuilder add(SearchEngineSpanQuery query); SearchEngineSpanQuery toQuery(); } public static interface SearchEngineQuerySpanOrBuilder { SearchEngineQuerySpanOrBuilder add(SearchEngineSpanQuery query); SearchEngineSpanQuery toQuery(); } public static interface SearchEngineMoreLikeThisQueryBuilder extends SearchEngineToQuery { SearchEngineMoreLikeThisQueryBuilder setSubIndexes(String[] subIndexes); SearchEngineMoreLikeThisQueryBuilder setAliases(String[] aliases); SearchEngineMoreLikeThisQueryBuilder setProperties(String[] properties); SearchEngineMoreLikeThisQueryBuilder addProperty(String property); SearchEngineMoreLikeThisQueryBuilder setAnalyzer(String analyzer); SearchEngineMoreLikeThisQueryBuilder setBoost(boolean boost); SearchEngineMoreLikeThisQueryBuilder setMaxNumTokensParsed(int maxNumTokensParsed); SearchEngineMoreLikeThisQueryBuilder setMaxQueryTerms(int maxQueryTerms); SearchEngineMoreLikeThisQueryBuilder setMaxWordLen(int maxWordLen); SearchEngineMoreLikeThisQueryBuilder setMinResourceFreq(int minDocFreq); SearchEngineMoreLikeThisQueryBuilder setMinTermFreq(int minTermFreq); SearchEngineMoreLikeThisQueryBuilder setMinWordLen(int minWordLen); SearchEngineMoreLikeThisQueryBuilder setStopWords(String[] stopWords); } SearchEngineBooleanQueryBuilder bool(); SearchEngineBooleanQueryBuilder bool(boolean disableCoord); SearchEngineMultiPhraseQueryBuilder multiPhrase(String resourcePropertyName); SearchEngineQueryStringBuilder queryString(String queryString); SearchEngineMultiPropertyQueryStringBuilder multiPropertyQueryString(String queryString); SearchEngineQuery wildcard(String resourcePropertyName, String wildcard); SearchEngineQuery term(String resourcePropertyName, String value); SearchEngineQuery matchAll(); SearchEngineQuery between(String resourcePropertyName, String low, String high, boolean inclusive, boolean constantScore); SearchEngineQuery between(String resourcePropertyName, String low, String high, boolean inclusive); SearchEngineQuery lt(String resourcePropertyName, String value); SearchEngineQuery le(String resourcePropertyName, String value); SearchEngineQuery gt(String resourcePropertyName, String value); SearchEngineQuery ge(String resourcePropertyName, String value); SearchEngineQuery prefix(String resourcePropertyName, String prefix); SearchEngineQuery fuzzy(String resourcePropertyName, String value); SearchEngineQuery fuzzy(String resourcePropertyName, String value, float minimumSimilarity); SearchEngineQuery fuzzy(String resourcePropertyName, String value, float minimumSimilarity, int prefixLength); SearchEngineSpanQuery spanEq(String resourcePropertyName, String value); SearchEngineSpanQuery spanFirst(SearchEngineSpanQuery searchEngineSpanQuery, int end); SearchEngineSpanQuery spanFirst(String resourcePropertyName, String value, int end); SearchEngineQuerySpanNearBuilder spanNear(String resourcePropertyName); SearchEngineSpanQuery spanNot(SearchEngineSpanQuery include, SearchEngineSpanQuery exclude); SearchEngineQuerySpanOrBuilder spanOr(); SearchEngineMoreLikeThisQueryBuilder moreLikeThis(SearchEngine searchEngine, Resource idResource); SearchEngineMoreLikeThisQueryBuilder moreLikeThis(SearchEngine searchEngine, Reader reader); }