mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-11-01 19:18:05 +00:00
Support all stemmer languages in OpenSearch index transformation (#23890)
This commit is contained in:
parent
86b6de3346
commit
b39c08256c
@ -176,21 +176,19 @@ public class OpenSearchIndexManager implements IndexManagementClient {
|
|||||||
if (!filtersNode.isMissingNode() && filtersNode.isObject()) {
|
if (!filtersNode.isMissingNode() && filtersNode.isObject()) {
|
||||||
ObjectNode filtersObj = (ObjectNode) filtersNode;
|
ObjectNode filtersObj = (ObjectNode) filtersNode;
|
||||||
|
|
||||||
// Check if om_stemmer exists and has "name": "kstem"
|
// Transform stemmer configuration from Elasticsearch to OpenSearch format
|
||||||
JsonNode omStemmerNode = filtersObj.path("om_stemmer");
|
JsonNode omStemmerNode = filtersObj.path("om_stemmer");
|
||||||
if (!omStemmerNode.isMissingNode() && omStemmerNode.has("type")) {
|
if (!omStemmerNode.isMissingNode() && omStemmerNode.has("type")) {
|
||||||
String type = omStemmerNode.get("type").asText();
|
String type = omStemmerNode.get("type").asText();
|
||||||
if ("stemmer".equals(type) && omStemmerNode.has("name")) {
|
if ("stemmer".equals(type) && omStemmerNode.has("name")) {
|
||||||
String name = omStemmerNode.get("name").asText();
|
String name = omStemmerNode.get("name").asText();
|
||||||
if ("kstem".equals(name)) {
|
// OpenSearch uses "language" instead of "name" for stemmer configuration
|
||||||
// Create a new stemmer configuration for OpenSearch
|
ObjectNode newStemmerNode = JsonUtils.getObjectMapper().createObjectNode();
|
||||||
ObjectNode newStemmerNode = JsonUtils.getObjectMapper().createObjectNode();
|
newStemmerNode.put("type", "stemmer");
|
||||||
newStemmerNode.put("type", "stemmer");
|
newStemmerNode.put("language", name);
|
||||||
newStemmerNode.put("language", "kstem");
|
|
||||||
|
|
||||||
// Replace the om_stemmer configuration
|
// Replace the om_stemmer configuration
|
||||||
filtersObj.set("om_stemmer", newStemmerNode);
|
filtersObj.set("om_stemmer", newStemmerNode);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LOG.debug("No om_stemmer filter found in settings");
|
LOG.debug("No om_stemmer filter found in settings");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user