From 42a5f1bc81fa6e052c25ded79b0ab79ab7844bf8 Mon Sep 17 00:00:00 2001 From: Nolan Lawson Date: Sat, 5 Jan 2013 11:43:02 -0800 Subject: [PATCH] copy queryFields logic from ExtendedDismaxQParser, because the field became private in Solr 3.6.1. Should fix #1 --- .../SynonymExpandingExtendedDismaxQParserPlugin.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/apache/solr/search/SynonymExpandingExtendedDismaxQParserPlugin.java b/src/main/java/org/apache/solr/search/SynonymExpandingExtendedDismaxQParserPlugin.java index a013fd7..34f36b9 100644 --- a/src/main/java/org/apache/solr/search/SynonymExpandingExtendedDismaxQParserPlugin.java +++ b/src/main/java/org/apache/solr/search/SynonymExpandingExtendedDismaxQParserPlugin.java @@ -477,10 +477,17 @@ private List buildUpAlternateQueries(List> textsInQuer * @return */ private List createSynonymQueries(SolrParams solrParams, List alternateQueryTexts) { - + // // begin copied code from ExtendedDismaxQParser - // + // + + // have to build up the queryFields again because in Solr 3.6.1 they made it private. + Map queryFields = SolrPluginUtils.parseFieldBoosts(solrParams.getParams(DisMaxParams.QF)); + if (0 == queryFields.size()) { + queryFields.put(req.getSchema().getDefaultSearchFieldName(), 1.0f); + } + float tiebreaker = solrParams.getFloat(DisMaxParams.TIE, 0.0f); int qslop = solrParams.getInt(DisMaxParams.QS, 0); ExtendedSolrQueryParser up = new ExtendedSolrQueryParser(this,