Project

General

Profile

« Previous | Next » 

Revision 62892

View differences:

SolrResultSetOptionsUtil.java
20 20
    private static final Logger logger = Logger.getLogger(SolrResultSetOptionsUtil.class);
21 21

  
22 22
    public static NamedList<String> extractQueryOptions(String eprQuery) throws CQLParseException, IOException {
23
        //System.out.println("EPR Query on extract: " + eprQuery);
23 24
        CqlTranslator translator = new CqlTranslatorImpl();
24 25
        NamedList<String> queryOpts = new NamedList<String>();
26

  
27
        String[] sortParts = eprQuery.split("&sort=");
25 28
        String[] queryParts = eprQuery.split("&groupby=");
26 29

  
27
        logger.debug("QUERY: " + queryParts[0].replace("query=",""));
28
        TranslatedQuery translatedQuery = translator.getTranslatedQuery(queryParts[0].replace("query=",""));
30
        TranslatedQuery translatedQuery = translator.getTranslatedQuery(sortParts[0].replace("query=",""));
29 31
        queryOpts.add("q", translatedQuery.asLucene());
30 32
        queryOpts.add("fl", "__result");
31 33
        queryOpts.add("shards.tolerant","true");
32 34

  
33
        if (translatedQuery.getOptions() != null && translatedQuery.getOptions().getSort()!= null  ) {
34
            queryOpts.add("sort", translatedQuery.getOptions().getSort().getField() + " " + translatedQuery.getOptions().getSort().getMode());
35
        }
35
        //System.out.println("\nsortParts[0]" + sortParts[0]);
36
        //System.out.println("sortParts[1]" + sortParts[1] + "\n");
36 37

  
38
        if (sortParts!=null && sortParts.length > 1) {
39
            for(String sortP:sortParts) {
40
                //System.out.println("sort parts " + sortP);
41
            }
42
            if(sortParts[1]!=null) {
43
                int end = sortParts[1].indexOf("&groupby");
44

  
45
                //System.out.println("start: " + 0 + "end:" + end);
46
                String sortOption = sortParts[1].substring(0, end);
47
                //System.out.println("sortOption " + sortOption);
48
                if (sortOption != null && sortOption.length() > 1) {
49
                    String[] sortPhrases = sortOption.split(",");
50
                        if (sortPhrases != null && sortPhrases.length > 0) {
51
                            //System.out.println("sortphrases " + sortPhrases.length);
52
                            //System.out.println("sortPhrases[1]" + sortPhrases[0]);
53
                            StringBuilder sortPart = new StringBuilder();
54
                            for (String sortPhrase : sortPhrases) {
55
                                String[] sortMembers = sortPhrase.split("/");
56
                                if(!sortPart.toString().isEmpty()){
57
                                    sortPart.append(", ");
58
                                }
59
                                if (sortMembers != null) {
60
                                    //System.out.println("sortMembers[1]: " + sortMembers[1]);
61
                                    if (sortMembers[1].equals("sort.ascending")) {
62
                                        sortPart.append(sortMembers[0].trim() + " asc");
63
                                    } else if (sortMembers[1].equals("sort.descending")) {
64
                                        sortPart.append(sortMembers[0].trim() + " desc");
65
                                    }
66
                                }
67
                            }
68
                            queryOpts.add("sort", sortPart.toString());
69
                        }
70
                    }
71
                }
72
            }
73

  
74

  
75

  
37 76
        if (queryParts.length > 1) {
38 77

  
39 78
            //facetParts groupby + sf
......
67 106

  
68 107
            }
69 108

  
109

  
70 110
/*            logger.debug("refine fields " + Arrays.asList(refineFields));
71 111
            logger.debug("special facets " + Arrays.asList(specialFacets));
72 112
            logger.debug("facet queries " + Arrays.asList(facetParts));*/

Also available in: Unified diff