Ignore:
Timestamp:
2014-12-08T11:09:14+13:00 (9 years ago)
Author:
kjdon
Message:

lucene sort order param has changed to reverse sort on/off, but solr uses asc/desc. I have moved the sort order param out of sharedsolenegs2fieldsearch and into lucenesearch and solrsearch so they can have different versions of it. added code to handle creating the param, and a properties file for the text strings. build.xml modified to copy the properties file over.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • gs3-extensions/solr/trunk/src/src/java/org/greenstone/gsdl3/service/GS2SolrSearch.java

    r29355 r29542  
    4949public class GS2SolrSearch extends SharedSoleneGS2FieldSearch
    5050{
     51
     52  protected static final String SORT_ORDER_PARAM = "sortOrder";
     53  protected static final String SORT_ORDER_DESCENDING = "1";
     54  protected static final String SORT_ORDER_ASCENDING = "0";
     55
    5156    static Logger logger = Logger.getLogger(org.greenstone.gsdl3.service.GS2SolrSearch.class.getName());
    5257
     
    6065    public GS2SolrSearch()
    6166    {
     67                paramDefaults.put(SORT_ORDER_PARAM, SORT_ORDER_DESCENDING);
    6268        does_faceting = true;
    6369        // Used to store the solr cores that match the required 'level'
     
    243249    }
    244250
     251    /** add in the SOLR specific params to TextQuery */
     252    protected void addCustomQueryParams(Element param_list, String lang)
     253    {
     254        super.addCustomQueryParams(param_list, lang);
     255        /** Add in the sort order asc/desc param */
     256        createParameter(SORT_ORDER_PARAM, param_list, lang);
     257    }
     258  /** add in SOLR specific params for AdvancedFieldQuery */
     259  protected void addCustomQueryParamsAdvField(Element param_list, String lang)
     260    {
     261        super.addCustomQueryParamsAdvField(param_list, lang);
     262        createParameter(SORT_ORDER_PARAM, param_list, lang);
     263       
     264    }
     265    /** create a param and add to the list */
     266  protected void createParameter(String name, Element param_list, String lang)
     267  {
     268    Document doc = param_list.getOwnerDocument();
     269    Element param = null;
     270    String param_default = paramDefaults.get(name);
     271    if (name.equals(SORT_ORDER_PARAM)) {
     272        String[] vals = { SORT_ORDER_ASCENDING, SORT_ORDER_DESCENDING };
     273    String[] vals_texts = { getTextString("param." + SORT_ORDER_PARAM + "." + SORT_ORDER_ASCENDING, lang), getTextString("param." + SORT_ORDER_PARAM + "." + SORT_ORDER_DESCENDING, lang) };       
     274   
     275    param = GSXML.createParameterDescription(doc, SORT_ORDER_PARAM, getTextString("param." + SORT_ORDER_PARAM, lang), GSXML.PARAM_TYPE_ENUM_SINGLE, param_default, vals, vals_texts);
     276    }
     277
     278    if (param != null)
     279      {
     280    param_list.appendChild(param);
     281      }
     282    else
     283      {
     284    super.createParameter(name, param_list, lang);
     285      }
     286   
     287  }
     288 
    245289    /** methods to handle actually doing the query */
    246290
Note: See TracChangeset for help on using the changeset viewer.