private Map<String, Boolean> createCacheSettingMap() { if (getGroupingSessionCache() && ranking.getQueryCache()) { Map<String, Boolean> cacheSettingMap = new HashMap<>(); cacheSettingMap.put("grouping", true); cacheSettingMap.put("query", true); return cacheSettingMap; } if (getGroupingSessionCache()) return Collections.singletonMap("grouping", true); if (ranking.getQueryCache()) return Collections.singletonMap("query", true); return Collections.<String,Boolean>emptyMap(); }
public void encodeBody(ByteBuffer buffer) { setFieldsFromHits(); boolean useQueryCache = query.getRanking().getQueryCache();
final int relativeZero = buffer.position(); boolean sendSessionKey = query.getGroupingSessionCache() || query.getRanking().getQueryCache(); int featureFlag = getFeatureInt(sendSessionKey); buffer.putInt(featureFlag);
s.append(" groupingSessionCache=true"); if (query.getRanking().getQueryCache()) { s.append(" ranking.queryCache=true"); if (query.getGroupingSessionCache() || query.getRanking().getQueryCache()) { s.append(" sessionId=").append(query.getSessionId());
private void validateQueryCache(Query query) { if ( ! query.getRanking().getQueryCache() ) return; if (query.getTimeout() <= maxQueryCacheTimeout) return; if (query.isTraceable(2)) { query.trace("Query timeout (" + query.getTimeout() + " ms) > max query cache timeout (" + maxQueryCacheTimeout + " ms). Disabling query cache.", 2); } query.getRanking().setQueryCache(false); }
/** * Returns whether we need to send the query when fetching summaries. * This is necessary if the query requests summary features or dynamic snippeting */ public boolean summaryNeedsQuery(Query query) { if (query.getRanking().getQueryCache()) return false; // Query is cached in backend DocumentDatabase documentDb = getDocumentDatabase(query); // Needed to generate a dynamic summary? DocsumDefinition docsumDefinition = documentDb.getDocsumDefinitionSet().getDocsum(query.getPresentation().getSummary()); if (docsumDefinition.isDynamic()) return true; // Needed to generate ranking features? RankProfile rankProfile = documentDb.rankProfiles().get(query.getRanking().getProfile()); if (rankProfile == null) return true; // stay safe if (rankProfile.hasSummaryFeatures()) return true; if (query.getRanking().getListFeatures()) return true; // (Don't just add other checks here as there is a return false above) return false; }
if (key.last().equals(Ranking.SORTING)) return ranking.getSorting(); if (key.last().equals(Ranking.FRESHNESS)) return ranking.getFreshness(); if (key.last().equals(Ranking.QUERYCACHE)) return ranking.getQueryCache(); if (key.last().equals(Ranking.LIST_FEATURES)) return ranking.getListFeatures();