-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
This feature allows to use custom analyser ES for String type instead of no analyser for mapping.STRING or default ES analyser (split on non-alphanumeric tokens then lowercase) for Mapping.TEXT.
Custom analyser allows to use specific indexing for special property.
For example, it could be good to use phonetic analyser to match more on a last name property.
This feature will impact all String Predicates.
For Equals, NotEquals and Contains predicates, we should use ES query match instead of term because match go through ES analyser.
For Prefix, ContainsPrefix, Regex and ContainsRegex, I do not know because ES query prefix and regexp do not go through analyser.
The big issue is if we use ContainsPrefix or ContainsRegex on a property which have uppercase analyser, it will never match because JanusGraph convert value to lower case .
I propose to keep the actual code for Prefix or Regex and to do for ContainsPrefix or ContainsRegex :
- if the property use default analyser, we keep the actual code for backward compatibility.
- if not, we suppress the conversion to lowercase.