Changeset 25850


Ignore:
Timestamp:
2012-06-28T11:19:29+12:00 (12 years ago)
Author:
sjm84
Message:

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

File:
1 edited

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
Note: See TracChangeset for help on using the changeset viewer.