diff --git a/src/main/java/com/meilisearch/sdk/Documents.java b/src/main/java/com/meilisearch/sdk/Documents.java index 002ff14f..432c56e2 100644 --- a/src/main/java/com/meilisearch/sdk/Documents.java +++ b/src/main/java/com/meilisearch/sdk/Documents.java @@ -154,15 +154,19 @@ String getRawDocuments(String uid, DocumentsQuery param) throws MeilisearchExcep * @param uid Partial index identifier for the document * @param document String containing the document to add * @param primaryKey PrimaryKey of the document + * @param csvDelimiter CSV delimiter of the document * @return Meilisearch's TaskInfo API response * @throws MeilisearchException if the client request causes an error */ - TaskInfo addDocuments(String uid, String document, String primaryKey) + TaskInfo addDocuments(String uid, String document, String primaryKey, String csvDelimiter) throws MeilisearchException { URLBuilder urlb = documentPath(uid); if (primaryKey != null) { urlb.addParameter("primaryKey", primaryKey); } + if (csvDelimiter != null) { + urlb.addParameter("csvDelimiter", csvDelimiter); + } return httpClient.post(urlb.getURL(), document, TaskInfo.class); } @@ -175,12 +179,15 @@ TaskInfo addDocuments(String uid, String document, String primaryKey) * @return Meilisearch's TaskInfo API response * @throws MeilisearchException if the client request causes an error */ - TaskInfo updateDocuments(String uid, String document, String primaryKey) + TaskInfo updateDocuments(String uid, String document, String primaryKey, String csvDelimiter) throws MeilisearchException { URLBuilder urlb = documentPath(uid); if (primaryKey != null) { urlb.addParameter("primaryKey", primaryKey); } + if (csvDelimiter != null) { + urlb.addParameter("csvDelimiter", csvDelimiter); + } return httpClient.put(urlb.getURL(), document, TaskInfo.class); } diff --git a/src/main/java/com/meilisearch/sdk/Index.java b/src/main/java/com/meilisearch/sdk/Index.java index 2a81862c..3751c1e2 100644 --- a/src/main/java/com/meilisearch/sdk/Index.java +++ b/src/main/java/com/meilisearch/sdk/Index.java @@ -166,7 +166,7 @@ public String getRawDocuments(DocumentsQuery param) throws MeilisearchException * specification */ public TaskInfo addDocuments(String document) throws MeilisearchException { - return this.documents.addDocuments(this.uid, document, null); + return this.documents.addDocuments(this.uid, document, null, null); } /** @@ -181,7 +181,24 @@ public TaskInfo addDocuments(String document) throws MeilisearchException { * specification */ public TaskInfo addDocuments(String document, String primaryKey) throws MeilisearchException { - return this.documents.addDocuments(this.uid, document, primaryKey); + return this.documents.addDocuments(this.uid, document, primaryKey, null); + } + + /** + * Adds/Replaces documents in the index + * + * @param document Document to add in CSV string format + * @param primaryKey PrimaryKey of the document to add + * @param csvDelimiter Custom delimiter to use for the document being added + * @return TaskInfo Meilisearch API response + * @throws MeilisearchException if an error occurs + * @see API + * specification + */ + public TaskInfo addDocuments(String document, String primaryKey, String csvDelimiter) + throws MeilisearchException { + return this.documents.addDocuments(this.uid, document, primaryKey, csvDelimiter); } /** @@ -211,7 +228,8 @@ public TaskInfo[] addDocumentsInBatches(String document, Integer batchSize, Stri jsonSubArray.put(j, jsonDocumentsArray.get(i + j)); } arrayResponses.add( - this.documents.addDocuments(this.uid, jsonSubArray.toString(), primaryKey)); + this.documents.addDocuments( + this.uid, jsonSubArray.toString(), primaryKey, null)); } return arrayResponses.toArray(new TaskInfo[arrayResponses.size()]); } @@ -241,7 +259,7 @@ public TaskInfo[] addDocumentsInBatches(String document) throws MeilisearchExcep * specification */ public TaskInfo updateDocuments(String document) throws MeilisearchException { - return this.documents.updateDocuments(this.uid, document, null); + return this.documents.updateDocuments(this.uid, document, null, null); } /** @@ -257,7 +275,24 @@ public TaskInfo updateDocuments(String document) throws MeilisearchException { */ public TaskInfo updateDocuments(String document, String primaryKey) throws MeilisearchException { - return this.documents.updateDocuments(this.uid, document, primaryKey); + return this.documents.updateDocuments(this.uid, document, primaryKey, null); + } + + /** + * Updates documents in the index + * + * @param document Document to update in CSV string format + * @param primaryKey PrimaryKey of the document + * @param csvDelimiter Custom delimiter to use for the document being added + * @return TaskInfo Meilisearch API response + * @throws MeilisearchException if an error occurs + * @see API + * specification + */ + public TaskInfo updateDocuments(String document, String primaryKey, String csvDelimiter) + throws MeilisearchException { + return this.documents.updateDocuments(this.uid, document, primaryKey, csvDelimiter); } /** @@ -287,7 +322,8 @@ public TaskInfo[] updateDocumentsInBatches( jsonSubArray.put(j, jsonDocumentsArray.get(i + j)); } arrayResponses.add( - this.documents.updateDocuments(this.uid, jsonSubArray.toString(), primaryKey)); + this.documents.updateDocuments( + this.uid, jsonSubArray.toString(), primaryKey, null)); } return arrayResponses.toArray(new TaskInfo[arrayResponses.size()]); }