Skip to content

Commit

Permalink
refactor the classes into their own package
Browse files Browse the repository at this point in the history
  • Loading branch information
nolanlawson committed Nov 1, 2013
1 parent 35e403c commit 4658949
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 64 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@
*/
package org.apache.solr.search;

import static org.apache.solr.search.ReasonForNotExpandingSynonyms.AnalyzerNotFound;
import static org.apache.solr.search.ReasonForNotExpandingSynonyms.DidntFindAnySynonyms;
import static org.apache.solr.search.ReasonForNotExpandingSynonyms.HasComplexQueryOperators;
import static org.apache.solr.search.ReasonForNotExpandingSynonyms.IgnoringPhrases;
import static org.apache.solr.search.ReasonForNotExpandingSynonyms.NoAnalyzerSpecified;
import static org.apache.solr.search.ReasonForNotExpandingSynonyms.PluginDisabled;
import static org.apache.solr.search.ReasonForNotExpandingSynonyms.UnhandledException;
import static org.apache.solr.synonyms.ReasonForNotExpandingSynonyms.AnalyzerNotFound;
import static org.apache.solr.synonyms.ReasonForNotExpandingSynonyms.DidntFindAnySynonyms;
import static org.apache.solr.synonyms.ReasonForNotExpandingSynonyms.HasComplexQueryOperators;
import static org.apache.solr.synonyms.ReasonForNotExpandingSynonyms.IgnoringPhrases;
import static org.apache.solr.synonyms.ReasonForNotExpandingSynonyms.NoAnalyzerSpecified;
import static org.apache.solr.synonyms.ReasonForNotExpandingSynonyms.PluginDisabled;
import static org.apache.solr.synonyms.ReasonForNotExpandingSynonyms.UnhandledException;

import java.io.IOException;
import java.io.StringReader;
Expand Down Expand Up @@ -58,6 +58,12 @@
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.SolrResourceLoader;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.search.SynonymExpandingExtendedDismaxQParserPlugin.Const;
import org.apache.solr.search.SynonymExpandingExtendedDismaxQParserPlugin.Params;
import org.apache.solr.synonyms.AlternateQuery;
import org.apache.solr.synonyms.NoBoostSolrParams;
import org.apache.solr.synonyms.ReasonForNotExpandingSynonyms;
import org.apache.solr.synonyms.TextInQuery;

import com.google.common.collect.Ordering;
import com.google.common.collect.SortedSetMultimap;
Expand All @@ -76,6 +82,54 @@ public class SynonymExpandingExtendedDismaxQParserPlugin extends QParserPlugin i
ResourceLoaderAware {
public static final String NAME = "synonym_edismax";

/**
* Convenience class for parameters
*/
public static class Params {

/**
* @see org.apache.solr.search.ExtendedDismaxQParser.DMP#MULT_BOOST
*/
public static String MULT_BOOST = "boost";

public static final String SYNONYMS = "synonyms";
public static final String SYNONYMS_ANALYZER = "synonyms.analyzer";
public static final String SYNONYMS_ORIGINAL_BOOST = "synonyms.originalBoost";
public static final String SYNONYMS_SYNONYM_BOOST = "synonyms.synonymBoost";
public static final String SYNONYMS_DISABLE_PHRASE_QUERIES = "synonyms.disablePhraseQueries";
public static final String SYNONYMS_CONSTRUCT_PHRASES = "synonyms.constructPhrases";
public static final String SYNONYMS_IGNORE_QUERY_OPERATORS = "synonyms.ignoreQueryOperators";
/**
* instead of splicing synonyms into the original query string, ie
* dog bite
* canine familiaris bite
* dog chomp
* canine familiaris chomp
* do this:
* dog bite
* "canine familiaris" chomp
* with phrases off:
* dog bite canine familiaris chomp
*/
public static final String SYNONYMS_BAG = "synonyms.bag";
}

/**
* Convenience class for calling constants.
* @author nolan
*
*/
public static class Const {
/**
* A field we can't ever find in any schema, so we can safely tell
* DisjunctionMaxQueryParser to use it as our defaultField, and map aliases
* from it to any field in our schema.
*/
static final String IMPOSSIBLE_FIELD_NAME = "\uFFFC\uFFFC\uFFFC";

static final Pattern COMPLEX_QUERY_OPERATORS_PATTERN = Pattern.compile("(?:\\*|\\s-\\b|\\b(?:OR|AND|\\+)\\b)");
}

private NamedList<?> args;
private Map<String, Analyzer> synonymAnalyzers;
private Version luceneMatchVersion = null;
Expand Down Expand Up @@ -206,54 +260,6 @@ class SynonymExpandingExtendedDismaxQParser extends QParser {
// delegate all our parsing to these two parsers - one for the "synonym" query and the other for the main query
private ExtendedDismaxQParser synonymQueryParser;
private ExtendedDismaxQParser mainQueryParser;

/**
* Convenience class for parameters
*/
public static class Params {

/**
* @see org.apache.solr.search.ExtendedDismaxQParser.DMP#MULT_BOOST
*/
public static String MULT_BOOST = "boost";

public static final String SYNONYMS = "synonyms";
public static final String SYNONYMS_ANALYZER = "synonyms.analyzer";
public static final String SYNONYMS_ORIGINAL_BOOST = "synonyms.originalBoost";
public static final String SYNONYMS_SYNONYM_BOOST = "synonyms.synonymBoost";
public static final String SYNONYMS_DISABLE_PHRASE_QUERIES = "synonyms.disablePhraseQueries";
public static final String SYNONYMS_CONSTRUCT_PHRASES = "synonyms.constructPhrases";
public static final String SYNONYMS_IGNORE_QUERY_OPERATORS = "synonyms.ignoreQueryOperators";
/**
* instead of splicing synonyms into the original query string, ie
* dog bite
* canine familiaris bite
* dog chomp
* canine familiaris chomp
* do this:
* dog bite
* "canine familiaris" chomp
* with phrases off:
* dog bite canine familiaris chomp
*/
public static final String SYNONYMS_BAG = "synonyms.bag";
}

/**
* Convenience class for calling constants.
* @author nolan
*
*/
private static class Const {
/**
* A field we can't ever find in any schema, so we can safely tell
* DisjunctionMaxQueryParser to use it as our defaultField, and map aliases
* from it to any field in our schema.
*/
static final String IMPOSSIBLE_FIELD_NAME = "\uFFFC\uFFFC\uFFFC";

static final Pattern COMPLEX_QUERY_OPERATORS_PATTERN = Pattern.compile("(?:\\*|\\s-\\b|\\b(?:OR|AND|\\+)\\b)");
}

private Map<String, Analyzer> synonymAnalyzers;
private Query queryToHighlight;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.search;
package org.apache.solr.synonyms;

/**
* Simple POJO for containing an alternate query that we're building up
* @author nolan
*
*/
class AlternateQuery implements Cloneable {
public class AlternateQuery implements Cloneable {

private StringBuilder stringBuilder;
private int endPosition;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.search;
package org.apache.solr.synonyms;

import java.util.Iterator;

import org.apache.solr.common.params.DisMaxParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.search.SynonymExpandingExtendedDismaxQParserPlugin.Params;

import com.google.common.collect.ImmutableSet;

Expand All @@ -31,10 +32,11 @@
* @author nolan
*
*/
@SuppressWarnings("serial") class NoBoostSolrParams extends SolrParams {
@SuppressWarnings("serial")
public class NoBoostSolrParams extends SolrParams {

private static final ImmutableSet<String> BOOST_PARAMS = ImmutableSet.of(
DisMaxParams.BQ, DisMaxParams.BF, SynonymExpandingExtendedDismaxQParser.Params.MULT_BOOST);
DisMaxParams.BQ, DisMaxParams.BF, Params.MULT_BOOST);

private SolrParams delegateParams;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.search;
package org.apache.solr.synonyms;

import org.apache.solr.common.util.NamedList;

Expand All @@ -23,7 +23,7 @@
* @author nolan
*
*/
enum ReasonForNotExpandingSynonyms {
public enum ReasonForNotExpandingSynonyms {

PluginDisabled("You have to set synonyms=true to enable the plugin."),
NoAnalyzerSpecified("You defined >1 synonym analyzer in your configuration, but you left synonyms.analyzer empty."),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.solr.search;
package org.apache.solr.synonyms;

/**
* Simple POJO for representing a piece of text found in the original query or expanded using shingles/synonyms.
* @author nolan
*
*/
class TextInQuery implements Comparable<TextInQuery> {
public class TextInQuery implements Comparable<TextInQuery> {

private String text;
private int endPosition;
Expand Down

0 comments on commit 4658949

Please sign in to comment.