Changeset 25850

Show
Ignore:
Timestamp:
28.06.2012 11:19:29 (7 years ago)
Author:
sjm84
Message:

Advanced search and Form search now do paging. Also add facets to the results if they were used.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/AbstractGS2FieldSearch.java

    r25635 r25850  
    3737 
    3838import org.apache.log4j.*; 
     39import org.apache.solr.client.solrj.response.FacetField; 
    3940 
    4041abstract public class AbstractGS2FieldSearch extends AbstractGS2TextSearch 
     
    186187                Element tq_service = GSXML.getNamedElement(short_service_info, GSXML.SERVICE_ELEM, GSXML.NAME_ATT, QUERY_SERVICE); 
    187188                short_service_info.removeChild(tq_service); 
    188  
    189189            } 
    190190 
     
    305305                    createParameter(INDEX_LANGUAGE_PARAM, param_list, lang); 
    306306                } 
     307                 
     308                if (does_paging) 
     309                { 
     310                    createParameter(HITS_PER_PAGE_PARAM, param_list, lang); 
     311                    createParameter(START_PAGE_PARAM, param_list, lang); 
     312                } 
     313                 
    307314                // create a multi param for the fields etc 
    308315                // text box, field 
     
    356363                { 
    357364                    createParameter(FIELD_ACCENT_PARAM, multiparam, lang); 
     365                } 
     366                if (does_paging) 
     367                { 
     368                    createParameter(HITS_PER_PAGE_PARAM, param_list, lang); 
     369                    createParameter(START_PAGE_PARAM, param_list, lang); 
    358370                } 
    359371                createParameter(FIELD_FIELD_PARAM, multiparam, lang); 
     
    653665        addTermInfo(term_list, params, query_result); 
    654666 
     667        if (query_result instanceof SolrQueryResult) 
     668        { 
     669            Element facet_list = this.doc.createElement(GSXML.FACET_ELEM + GSXML.LIST_MODIFIER); 
     670            result.appendChild(facet_list); 
     671 
     672            if(((SolrQueryResult) query_result).getFacetResults() != null) 
     673            { 
     674                for (FacetField facet : ((SolrQueryResult) query_result).getFacetResults()) 
     675                { 
     676                    Element facet_elem = this.doc.createElement(GSXML.FACET_ELEM); 
     677                    facet_elem.setAttribute(GSXML.NAME_ATT, facet.getName()); 
     678     
     679                    for (FacetField.Count count : facet.getValues()) 
     680                    { 
     681                        if (count.getCount() > 0) 
     682                        { 
     683                            Element count_elem = this.doc.createElement(GSXML.COUNT_ELEM); 
     684                            count_elem.setAttribute(GSXML.NAME_ATT, count.getName()); 
     685                            count_elem.setTextContent("" + count.getCount()); 
     686     
     687                            facet_elem.appendChild(count_elem); 
     688                        } 
     689                    } 
     690                    facet_list.appendChild(facet_elem); 
     691                } 
     692            } 
     693        } 
     694 
    655695        return result; 
    656696