Skip to content

Commit 98c89c0

Browse files
committed
OAK-11555 Elastic: support dot in property and function names
1 parent 5704b7e commit 98c89c0

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

oak-search-elastic/src/main/java/org/apache/jackrabbit/oak/plugins/index/elastic/util/ElasticIndexUtils.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@ public static String fieldName(String propertyName) {
4444
return propertyName;
4545
}
4646
String fieldName = propertyName;
47+
boolean blank = fieldName.isBlank();
4748
boolean escape = false;
48-
if (fieldName.isBlank()) {
49+
if (blank) {
4950
// empty field name or field names that only consist of spaces
5051
escape = true;
5152
} else {
@@ -63,6 +64,11 @@ public static String fieldName(String propertyName) {
6364
}
6465
if (escape) {
6566
StringBuilder buff = new StringBuilder(fieldName.length());
67+
if (fieldName.startsWith("_") || blank) {
68+
// internal field start with a _
69+
// we also support empty or just spaces
70+
buff.append('|');
71+
}
6672
for (int i = 0; i < fieldName.length(); i++) {
6773
char c = fieldName.charAt(i);
6874
switch (c) {
@@ -78,17 +84,13 @@ public static String fieldName(String propertyName) {
7884
}
7985
}
8086
fieldName = buff.toString();
81-
// internal field start with a _
82-
// we also support empty or just spaces
83-
if (fieldName.startsWith("_") || fieldName.isBlank()) {
84-
fieldName = "|" + fieldName;
85-
}
8687
}
8788
return fieldName;
8889
}
8990

9091
/**
9192
* Convert an elasticsearch field name to a JCR property name.
93+
* Please note this method is not optimized for performance.
9294
*
9395
* @param fieldName the field name
9496
* @return the property name

0 commit comments

Comments
 (0)