|
|
@ -182,10 +182,11 @@ public class SolrSelectServlet extends HttpServlet {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
mmsp.getMap().put(CommonParams.ROWS, new String[]{Integer.toString(Math.min(mmsp.getInt(CommonParams.ROWS, CommonParams.ROWS_DEFAULT), (authenticated) ? 100000000 : 100))});
|
|
|
|
mmsp.getMap().put(CommonParams.ROWS, new String[]{Integer.toString(Math.min(mmsp.getInt(CommonParams.ROWS, CommonParams.ROWS_DEFAULT), (authenticated) ? 100000000 : 100))});
|
|
|
|
boolean zeroDoc = mmsp.getInt(CommonParams.ROWS, CommonParams.ROWS_DEFAULT) < 1;
|
|
|
|
boolean zeroDoc = mmsp.getInt(CommonParams.ROWS, CommonParams.ROWS_DEFAULT) < 1;
|
|
|
|
|
|
|
|
boolean multiDoc = mmsp.getInt(CommonParams.ROWS, CommonParams.ROWS_DEFAULT) > 1;
|
|
|
|
|
|
|
|
|
|
|
|
// set ranking according to profile number if ranking attributes are not given in the request
|
|
|
|
// set ranking according to profile number if ranking attributes are not given in the request
|
|
|
|
Ranking ranking = sb.index.fulltext().getDefaultConfiguration().getRanking(profileNr);
|
|
|
|
Ranking ranking = sb.index.fulltext().getDefaultConfiguration().getRanking(profileNr);
|
|
|
|
if (!zeroDoc && !mmsp.getMap().containsKey(CommonParams.SORT) && !mmsp.getMap().containsKey(DisMaxParams.BQ) && !mmsp.getMap().containsKey(DisMaxParams.BF) && !mmsp.getMap().containsKey("boost")) {
|
|
|
|
if (multiDoc && !mmsp.getMap().containsKey(CommonParams.SORT) && !mmsp.getMap().containsKey(DisMaxParams.BQ) && !mmsp.getMap().containsKey(DisMaxParams.BF) && !mmsp.getMap().containsKey("boost")) {
|
|
|
|
if (!mmsp.getMap().containsKey("defType")) mmsp.getMap().put("defType", new String[]{"edismax"});
|
|
|
|
if (!mmsp.getMap().containsKey("defType")) mmsp.getMap().put("defType", new String[]{"edismax"});
|
|
|
|
String fq = ranking.getFilterQuery();
|
|
|
|
String fq = ranking.getFilterQuery();
|
|
|
|
String bq = ranking.getBoostQuery();
|
|
|
|
String bq = ranking.getBoostQuery();
|
|
|
@ -243,6 +244,7 @@ public class SolrSelectServlet extends HttpServlet {
|
|
|
|
if (connector == null) throw new ServletException("no core");
|
|
|
|
if (connector == null) throw new ServletException("no core");
|
|
|
|
|
|
|
|
|
|
|
|
// add default queryfield parameter according to local ranking config (or defaultfield)
|
|
|
|
// add default queryfield parameter according to local ranking config (or defaultfield)
|
|
|
|
|
|
|
|
if (multiDoc) {
|
|
|
|
if (ranking != null) { // ranking normally never null
|
|
|
|
if (ranking != null) { // ranking normally never null
|
|
|
|
final String qf = ranking.getQueryFields();
|
|
|
|
final String qf = ranking.getQueryFields();
|
|
|
|
if (qf.length() > 4 && !mmsp.getMap().containsKey(DisMaxParams.QF)) { // make sure qf has content (else use df)
|
|
|
|
if (qf.length() > 4 && !mmsp.getMap().containsKey(DisMaxParams.QF)) { // make sure qf has content (else use df)
|
|
|
@ -254,6 +256,7 @@ public class SolrSelectServlet extends HttpServlet {
|
|
|
|
} else if(!mmsp.getMap().containsKey(CommonParams.DF)) {
|
|
|
|
} else if(!mmsp.getMap().containsKey(CommonParams.DF)) {
|
|
|
|
mmsp.getMap().put(CommonParams.DF, new String[]{CollectionSchema.text_t.getSolrFieldName()});
|
|
|
|
mmsp.getMap().put(CommonParams.DF, new String[]{CollectionSchema.text_t.getSolrFieldName()});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// do the solr request, generate facets if we use a special YaCy format
|
|
|
|
// do the solr request, generate facets if we use a special YaCy format
|
|
|
|
final SolrQueryResponse rsp;
|
|
|
|
final SolrQueryResponse rsp;
|
|
|
|