diff --git a/data-store/src/main/java/org/lucares/pdb/datastore/internal/DataStore.java b/data-store/src/main/java/org/lucares/pdb/datastore/internal/DataStore.java index 9e21d06..e2dcb83 100644 --- a/data-store/src/main/java/org/lucares/pdb/datastore/internal/DataStore.java +++ b/data-store/src/main/java/org/lucares/pdb/datastore/internal/DataStore.java @@ -267,7 +267,8 @@ public class DataStore implements AutoCloseable { final Tag keyPrefix = Tags.STRING_COMPRESSOR.createTag("", ""); // will find everything final PartitionIdSource partitionIdSource = new DatePartitioner(dateRange); - tagToDocsId.visitValues(partitionIdSource, keyPrefix, (tags, __) -> keys.add(tags.getKeyAsString())); + tagToDocsId.visitValues(partitionIdSource, keyPrefix, + (tag, __) -> keys.add(Tags.STRING_COMPRESSOR.getKeyAsString(tag))); keys.remove(ALL_DOCS_KEY); final List result = new ArrayList<>(keys); diff --git a/data-store/src/main/java/org/lucares/pdb/datastore/internal/QueryCompletionIndex.java b/data-store/src/main/java/org/lucares/pdb/datastore/internal/QueryCompletionIndex.java index 56893a4..a198d6c 100644 --- a/data-store/src/main/java/org/lucares/pdb/datastore/internal/QueryCompletionIndex.java +++ b/data-store/src/main/java/org/lucares/pdb/datastore/internal/QueryCompletionIndex.java @@ -327,7 +327,7 @@ public class QueryCompletionIndex implements AutoCloseable { // create indices of all tags and all fields for (final Tag tag : listOfTagsA) { fieldToValueIndex.putValue(partitionId, tag, Empty.INSTANCE); - fieldIndex.putValue(partitionId, tag.getKeyAsString(), Empty.INSTANCE); + fieldIndex.putValue(partitionId, Tags.STRING_COMPRESSOR.getKeyAsString(tag), Empty.INSTANCE); } } @@ -356,10 +356,10 @@ public class QueryCompletionIndex implements AutoCloseable { final PartitionIdSource partitionIdSource = new DatePartitioner(dateRange); tagToTagIndex.visitValues(partitionIdSource, keyPrefix, (k, v) -> { - final String vA = k.getTagA().getValueAsString(); + final String vA = Tags.STRING_COMPRESSOR.getValueAsString(k.getTagA()); if (valueA.matches(vA)) { - result.add(k.getTagB().getValueAsString()); + result.add(Tags.STRING_COMPRESSOR.getValueAsString(k.getTagB())); } }); @@ -385,7 +385,7 @@ public class QueryCompletionIndex implements AutoCloseable { final PartitionIdSource partitionIdSource = new DatePartitioner(dateRange); tagToTagIndex.visitValues(partitionIdSource, keyPrefix, (k, v) -> { - result.add(k.getTagB().getValueAsString()); + result.add(Tags.STRING_COMPRESSOR.getValueAsString(k.getTagB())); }); return result; @@ -406,7 +406,7 @@ public class QueryCompletionIndex implements AutoCloseable { final PartitionIdSource partitionIdSource = new DatePartitioner(dateRange); fieldToValueIndex.visitValues(partitionIdSource, keyPrefix, (k, v) -> { - result.add(k.getValueAsString()); + result.add(Tags.STRING_COMPRESSOR.getValueAsString(k)); }); return result; @@ -426,7 +426,7 @@ public class QueryCompletionIndex implements AutoCloseable { final String field) { final SortedSet result = new TreeSet<>(); - final TwoTags keyPrefix = new TwoTags(field, tag.getKeyAsString(), null, null); + final TwoTags keyPrefix = new TwoTags(field, Tags.STRING_COMPRESSOR.getKeyAsString(tag), null, null); final int negatedValueA = tag.getValue(); final PartitionIdSource partitionIdSource = new DatePartitioner(dateRange); @@ -434,7 +434,7 @@ public class QueryCompletionIndex implements AutoCloseable { final int valueA = k.getTagA().getValue(); if (valueA != negatedValueA) { - result.add(k.getTagB().getValueAsString()); + result.add(Tags.STRING_COMPRESSOR.getValueAsString(k.getTagB())); } }); diff --git a/data-store/src/main/java/org/lucares/pdb/datastore/internal/TagEncoderDecoder.java b/data-store/src/main/java/org/lucares/pdb/datastore/internal/TagEncoderDecoder.java index 0b2c48e..8f7bd49 100644 --- a/data-store/src/main/java/org/lucares/pdb/datastore/internal/TagEncoderDecoder.java +++ b/data-store/src/main/java/org/lucares/pdb/datastore/internal/TagEncoderDecoder.java @@ -12,13 +12,13 @@ class TagEncoderDecoder implements EncoderDecoder { final LongList keyAndValueCompressed = new LongList(2); - final String key = tag.getKeyAsString(); + final String key = Tags.STRING_COMPRESSOR.getKeyAsString(tag); final byte[] result; if (!key.isEmpty()) { final Integer keyAsLong = Tags.STRING_COMPRESSOR.put(key); keyAndValueCompressed.add(keyAsLong); - final String value = tag.getValueAsString(); + final String value = Tags.STRING_COMPRESSOR.getValueAsString(tag); if (!value.isEmpty()) { final Integer valueAsLong = Tags.STRING_COMPRESSOR.put(value); keyAndValueCompressed.add(valueAsLong); diff --git a/data-store/src/main/java/org/lucares/pdb/datastore/lang/ExpressionToDocIdVisitor.java b/data-store/src/main/java/org/lucares/pdb/datastore/lang/ExpressionToDocIdVisitor.java index 540d180..12103e0 100644 --- a/data-store/src/main/java/org/lucares/pdb/datastore/lang/ExpressionToDocIdVisitor.java +++ b/data-store/src/main/java/org/lucares/pdb/datastore/lang/ExpressionToDocIdVisitor.java @@ -150,8 +150,8 @@ public class ExpressionToDocIdVisitor extends ExpressionVisitor docIdsForPartition = new ArrayList<>(); keyToValueToDocId.visitValues(partitionId, Tags.STRING_COMPRESSOR.createTag(propertyName, ""), - (tags, blockOffsetToDocIds) -> { - if (valuePattern.matcher(tags.getValueAsString()).matches()) { + (tag, blockOffsetToDocIds) -> { + if (valuePattern.matcher(Tags.STRING_COMPRESSOR.getValueAsString(tag)).matches()) { try (final LongStreamFile bsFile = diskStorage.streamExistingFile(blockOffsetToDocIds, partitionId)) { diff --git a/pdb-api/src/main/java/org/lucares/pdb/api/StringCompressor.java b/pdb-api/src/main/java/org/lucares/pdb/api/StringCompressor.java index 4317d36..48f84ca 100644 --- a/pdb-api/src/main/java/org/lucares/pdb/api/StringCompressor.java +++ b/pdb-api/src/main/java/org/lucares/pdb/api/StringCompressor.java @@ -51,4 +51,12 @@ public class StringCompressor { return new Tag(f, v); } + public String getKeyAsString(final Tag tag) { + return get(tag.getKey()); + } + + public String getValueAsString(final Tag tag) { + return get(tag.getValue()); + } + } diff --git a/pdb-api/src/main/java/org/lucares/pdb/api/Tag.java b/pdb-api/src/main/java/org/lucares/pdb/api/Tag.java index c75fc8d..51f652c 100644 --- a/pdb-api/src/main/java/org/lucares/pdb/api/Tag.java +++ b/pdb-api/src/main/java/org/lucares/pdb/api/Tag.java @@ -38,21 +38,13 @@ public class Tag implements Comparable { return field; } - public String getKeyAsString() { - return Tags.STRING_COMPRESSOR.get(field); - } - public int getValue() { return value; } - public String getValueAsString() { - return Tags.STRING_COMPRESSOR.get(value); - } - @Override public String toString() { - return Tags.STRING_COMPRESSOR.get(field) + "=" + Tags.STRING_COMPRESSOR.get(value); + return field + "=" + value; } @Override diff --git a/pdb-api/src/main/java/org/lucares/pdb/api/Tags.java b/pdb-api/src/main/java/org/lucares/pdb/api/Tags.java index a91bb04..c693785 100644 --- a/pdb-api/src/main/java/org/lucares/pdb/api/Tags.java +++ b/pdb-api/src/main/java/org/lucares/pdb/api/Tags.java @@ -207,15 +207,6 @@ public class Tags implements Comparable { return String.valueOf(tags); } - public String toCsv() { - final List tagsAsStrings = new ArrayList<>(); - for (final Tag tag : tags) { - tagsAsStrings.add(tag.getKeyAsString() + "=" + tag.getValueAsString()); - } - - return String.join(",", tagsAsStrings); - } - @Override public int hashCode() { if (hashCode == 0) {