@Override public int getDimensionCardinality() { return Integer.parseInt( keyValueStore.getOrDefault(DimensionStoreKeyUtils.getCardinalityKey(), "0") ); }
@Override public int getDimensionCardinality() { return Integer.parseInt(keyValueStore.get(DimensionStoreKeyUtils.getCardinalityKey())); }
/** * Update the cardinality count. */ private void refreshCardinality() { keyValueStore.put(DimensionStoreKeyUtils.getCardinalityKey(), Integer.toString(findAllDimensionRows().size())); }
@Override public void setKeyValueStore(KeyValueStore keyValueStore) { this.keyValueStore = keyValueStore; // Check initialization for the cardinality in a keyValueStore if (keyValueStore.get(DimensionStoreKeyUtils.getCardinalityKey()) == null) { refreshCardinality(); } }
/** * Update the cardinality count. * <p> * Note that this method acquires a read lock to query the lucene index for the number of documents. */ private void refreshCardinality() { int numDocs; initializeIndexSearcher(); lock.readLock().lock(); try { numDocs = luceneIndexSearcher.getIndexReader().numDocs(); } finally { lock.readLock().unlock(); } keyValueStore.put( DimensionStoreKeyUtils.getCardinalityKey(), Integer.toString(numDocs) ); }
@Override public void setKeyValueStore(KeyValueStore keyValueStore) { this.keyValueStore = keyValueStore; // Check initialization for the cardinality in a keyValueStore if (keyValueStore.get(DimensionStoreKeyUtils.getCardinalityKey()) == null) { keyValueStore.put(DimensionStoreKeyUtils.getCardinalityKey(), "0"); } //Check Dimension value keys availability String allValuesKey = DimensionStoreKeyUtils.getAllValuesKey(); if (keyValueStore.get(allValuesKey) == null) { keyValueStore.put(allValuesKey, "[]"); } }
/** * Internal method for cleaning the dimension rows. */ public void deleteAllDimensionRows() { try { String dimRowIndexes = keyValueStore.get(DimensionStoreKeyUtils.getAllValuesKey()); if (dimRowIndexes == null) { return; } String[] keys = objectMapper.readValue(dimRowIndexes, String[].class); LinkedHashSet<String> dimRowKeys = new LinkedHashSet<>(Arrays.asList(keys)); for (String dimRowKey : dimRowKeys) { keyValueStore.remove(dimRowKey); } searchProvider.setKeyValueStore(keyValueStore); // Reset cardinality to 0 keyValueStore.put(DimensionStoreKeyUtils.getCardinalityKey(), "0"); // Reset list to empty String allValuesKey = DimensionStoreKeyUtils.getAllValuesKey(); keyValueStore.put(allValuesKey, "[]"); } catch (IOException e) { LOG.error("Exception while reading dimension rows {}", e); throw new RuntimeException(e); } }