From 76a9639440b70857f08a934ec7d88308b7f1a0f0 Mon Sep 17 00:00:00 2001 From: Mohamed Emad Date: Sun, 4 Feb 2024 02:05:15 +0200 Subject: [PATCH] add support for the proximity precision setting --- src/main/java/com/meilisearch/sdk/Index.java | 41 +++++++++++++++++ .../com/meilisearch/sdk/SettingsHandler.java | 45 +++++++++++++++++++ .../com/meilisearch/sdk/model/Settings.java | 1 + 3 files changed, 87 insertions(+) diff --git a/src/main/java/com/meilisearch/sdk/Index.java b/src/main/java/com/meilisearch/sdk/Index.java index b282f8ea..2a81862c 100644 --- a/src/main/java/com/meilisearch/sdk/Index.java +++ b/src/main/java/com/meilisearch/sdk/Index.java @@ -869,6 +869,47 @@ public TaskInfo resetDictionarySettings() throws MeilisearchException { return this.settingsHandler.resetDictionarySettings(this.uid); } + /** + * Gets the proximity precision level of the index + * + * @return proximity precision level of a given uid as String + * @throws MeilisearchException if an error occurs + * @see API + * specification + */ + public String getProximityPrecisionSettings() throws MeilisearchException { + return this.settingsHandler.getProximityPrecisionSettings(this.uid); + } + + /** + * Updates the proximity precision level of the index + * + * @param proximityPrecision A String: the proximity precision level. + * @return TaskInfo instance + * @throws MeilisearchException if an error occurs + * @see API + * specification + */ + public TaskInfo updateProximityPrecisionSettings(String proximityPrecision) + throws MeilisearchException { + return this.settingsHandler.updateProximityPrecisionSettings(this.uid, proximityPrecision); + } + + /** + * Resets the proximity precision level of the index + * + * @return TaskInfo instance + * @throws MeilisearchException if an error occurs + * @see API + * specification + */ + public TaskInfo resetProximityPrecisionSettings() throws MeilisearchException { + return this.settingsHandler.resetProximityPrecisionSettings(this.uid); + } + /** * Gets extended information and metrics about indexes and the Meilisearch database * diff --git a/src/main/java/com/meilisearch/sdk/SettingsHandler.java b/src/main/java/com/meilisearch/sdk/SettingsHandler.java index 7ff4825b..163a1037 100644 --- a/src/main/java/com/meilisearch/sdk/SettingsHandler.java +++ b/src/main/java/com/meilisearch/sdk/SettingsHandler.java @@ -553,6 +553,51 @@ TaskInfo resetDictionarySettings(String uid) throws MeilisearchException { settingsPath(uid).addSubroute("dictionary").getURL(), TaskInfo.class); } + /** + * Gets the proximity precision level of the index + * + * @param uid Index identifier + * @return a string of the proximity precision level + * @throws MeilisearchException if an error occurs + */ + String getProximityPrecisionSettings(String uid) throws MeilisearchException { + String response = + httpClient.get( + settingsPath(uid).addSubroute("proximity-precision").getURL(), + String.class); + return response.substring(1, response.length() - 1); + } + + /** + * Updates the proximity precision level of the index + * + * @param uid Index identifier + * @param proximityPrecision a String that contains the new proximity precision level settings + * @return TaskInfo instance + * @throws MeilisearchException if an error occurs + */ + TaskInfo updateProximityPrecisionSettings(String uid, String proximityPrecision) + throws MeilisearchException { + return httpClient.put( + settingsPath(uid).addSubroute("proximity-precision").getURL(), + proximityPrecision == null + ? httpClient.jsonHandler.encode(proximityPrecision) + : "\"" + proximityPrecision + "\"", + TaskInfo.class); + } + + /** + * Resets the proximity precision level of the index + * + * @param uid Index identifier + * @return TaskInfo instance + * @throws MeilisearchException if an error occurs + */ + TaskInfo resetProximityPrecisionSettings(String uid) throws MeilisearchException { + return httpClient.delete( + settingsPath(uid).addSubroute("proximity-precision").getURL(), TaskInfo.class); + } + /** Creates an URLBuilder for the constant route settings */ private URLBuilder settingsPath(String uid) { return new URLBuilder("/indexes").addSubroute(uid).addSubroute("/settings"); diff --git a/src/main/java/com/meilisearch/sdk/model/Settings.java b/src/main/java/com/meilisearch/sdk/model/Settings.java index 631362e5..8263581c 100644 --- a/src/main/java/com/meilisearch/sdk/model/Settings.java +++ b/src/main/java/com/meilisearch/sdk/model/Settings.java @@ -27,6 +27,7 @@ public class Settings { protected Pagination pagination; protected Faceting faceting; protected String[] dictionary; + protected String proximityPrecision; public Settings() {} }