Revision 62892
Added by Katerina Iatropoulou 11 months ago
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