Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions src/main/java/com/meilisearch/sdk/model/IndexStats.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.meilisearch.sdk.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;

/**
* Stats data structure of a Meilisearch Index
Expand All @@ -10,6 +12,7 @@
* specification</a>
*/
@Getter
@Setter
public class IndexStats {
protected long numberOfDocuments;
protected boolean isIndexing;
Expand All @@ -18,6 +21,8 @@ public class IndexStats {
protected long avgDocumentSize;
protected long numberOfEmbeddedDocuments;
protected long numberOfEmbeddings;
protected long indexSize;
protected long usedIndexSize;

public IndexStats() {}

Expand All @@ -29,12 +34,41 @@ public IndexStats(
long avgDocumentSize,
long numberOfEmbeddedDocuments,
long numberOfEmbeddings) {
this(
numberOfDocuments,
isIndexing,
fieldDistribution,
rawDocumentDbSize,
avgDocumentSize,
numberOfEmbeddedDocuments,
numberOfEmbeddings,
0L,
0L);
}

public IndexStats(
long numberOfDocuments,
boolean isIndexing,
Map<String, Integer> fieldDistribution,
long rawDocumentDbSize,
long avgDocumentSize,
long numberOfEmbeddedDocuments,
long numberOfEmbeddings,
long indexSize,
long usedIndexSize) {
this.numberOfDocuments = numberOfDocuments;
this.isIndexing = isIndexing;
this.fieldDistribution = fieldDistribution;
this.rawDocumentDbSize = rawDocumentDbSize;
this.avgDocumentSize = avgDocumentSize;
this.numberOfEmbeddedDocuments = numberOfEmbeddedDocuments;
this.numberOfEmbeddings = numberOfEmbeddings;
this.indexSize = indexSize;
this.usedIndexSize = usedIndexSize;
}

@JsonProperty("isIndexing")
public boolean isIndexing() {
return isIndexing;
}
}
14 changes: 14 additions & 0 deletions src/test/java/com/meilisearch/sdk/json/GsonJsonHandlerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,20 @@ void granularFilterableAttributesWithNullPatternRoundTrip() throws Exception {
assertThat(decoded[0].getAttributePatterns(), arrayContaining("director", null, "genres"));
}

@Test
void decodeIndexStatsWithIndexSizeAndUsedIndexSize() {
String json =
"{\"numberOfDocuments\":10,\"isIndexing\":false,\"fieldDistribution\":{},\"rawDocumentDbSize\":1024,\"avgDocumentSize\":102,\"numberOfEmbeddedDocuments\":0,\"numberOfEmbeddings\":0,\"indexSize\":2048,\"usedIndexSize\":1500}";

com.meilisearch.sdk.model.IndexStats indexStats =
classToTest.decode(json, com.meilisearch.sdk.model.IndexStats.class);

assertThat(indexStats, is(notNullValue()));
assertThat(indexStats.getNumberOfDocuments(), is(equalTo(10L)));
assertThat(indexStats.getIndexSize(), is(equalTo(2048L)));
assertThat(indexStats.getUsedIndexSize(), is(equalTo(1500L)));
}

@Getter
private static class Container {
private Key key;
Expand Down
28 changes: 28 additions & 0 deletions src/test/java/com/meilisearch/sdk/json/JacksonJsonHandlerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -178,4 +178,32 @@ void settingsWithAdvancedGranularFilterableAttributesRoundTripWithCustomMapper()
.getComparison(),
is(false));
}

@Test
void decodeIndexStatsWithIndexSizeAndUsedIndexSize() throws Exception {
String json =
"{\"numberOfDocuments\":10,\"isIndexing\":false,\"fieldDistribution\":{},\"rawDocumentDbSize\":1024,\"avgDocumentSize\":102,\"numberOfEmbeddedDocuments\":0,\"numberOfEmbeddings\":0,\"indexSize\":2048,\"usedIndexSize\":1500}";

com.meilisearch.sdk.model.IndexStats indexStats =
classToTest.decode(json, com.meilisearch.sdk.model.IndexStats.class);

assertThat(indexStats, is(notNullValue()));
assertThat(indexStats.getNumberOfDocuments(), is(equalTo(10L)));
assertThat(indexStats.getIndexSize(), is(equalTo(2048L)));
assertThat(indexStats.getUsedIndexSize(), is(equalTo(1500L)));
}

@Test
void serializeIndexStats() throws Exception {
com.meilisearch.sdk.model.IndexStats indexStats =
new com.meilisearch.sdk.model.IndexStats(
10, false, new java.util.HashMap<>(), 1024, 102, 0, 0, 2048, 1500);

String json = classToTest.encode(indexStats);

assertThat(json, org.hamcrest.Matchers.containsString("\"isIndexing\":false"));
assertThat(
json,
org.hamcrest.Matchers.not(org.hamcrest.Matchers.containsString("\"indexing\"")));
}
}