Slides from my Alfresco DevCon 2018 Lightning Talk (5 min, 15s per main slide, auto-advancing) about the Alfresco Search Services product, its current limitations with regards to usage in an organisation with mixed user locales, and the work-arounds (as well as long-term solution) to making it work nonetheless. The recording of the Lightning Talk session will be uploaded to the Alfresco YouTube channel sometime in the next days / weeks.
3. Mixed User Locale Environments
●
Common scenarios
– Multi-national organisation
– Cross-border / language employments (EU / Switzerland)
– Integration of expats / migrants
●
Content locale standardised – OS / browser locale best for user
4. The Problem
●
Node creation: sys:locale / value locale = browser / default locale
●
Indexing: d:text = sys:locale, d:content / d:mltext = value locale
●
Query: d:text / d:mltext / d:content = browser locale
5. The Problem
LDAP
●
Node creation: sys:locale / value locale = browser / default locale
●
Indexing: d:text = sys:locale, d:content / d:mltext = value locale
●
Query: d:text / d:mltext / d:content = browser locale
6. The Problem
●
Node creation: sys:locale / value locale = browser / default locale
●
Indexing: d:text = sys:locale, d:content / d:mltext = value locale
●
Query: d:text / d:mltext / d:content = browser locale
{ } { }
11. The Background
●
ACE-4000 => „[…] and index size reduction“
●
Harry Peek, Senior Product Manager
– „ Adding [different defaults] would make queries against large
repositories slower“
– „The point of the defaults [...] was to deliver scalability“
14. The Workaround(s)
●
All via <solrhome>/conf/shared.properties
a) Brute-force SOLR 4 default (reindex required)
• Deletion not recommended (due solr.host et al)
15. The Workaround(s)
b) Configure only user-relevant properties (reindex required)
• Smaller index + faster queries
• My results from default models (sys/cm/audio/exif)
• 18 identifier d:text properties
• 70 cross-locale d:text properties
16. The Workaround(s)
c) Use explicit query locale(s)
• Java API: SearchParameter.addLocale()
(custom SearchService interceptor for global default)
• ReST API: “localization“: { “locales“: [“..“] }
• MLAnalysisMode parameter ignored in ASS
17. The Workaround(s)
d) Use explicit „any locale“ query wildcard
• Locale “*“ via Java / ReST API
• Same as keensoft patch
https://github.com/keensoft/alf-21940-repo
18. Looking for Long Term Solutions
●
My initial feedback / suggestions
– d:text locale-independent by default
– Config for locale-dependence + „no locale“ fallback
– More granularity levels for config (e.g. namespace)
19. Looking for Long Term Solutions
●
ALF-21940: increased community awareness
●
Constructive feedback session
– Community: Angel Borroy, Axel Faust
– Alfresco: Harry Peek, Andy Hind
20. Looking for Long Term Solutions
●
SEARCH-684
– Specific to d:text
– Match previous SOLR 4 default
– Expand index/query options for props
– Extend FTS to explicitly pick cross-locale tokenisation
21. Looking for Long Term Solutions
●
SEARCH-684
– Specific to d:text
– Match previous SOLR 4 default
– Expand index/query options for props
– Extend FTS to explicitly pick cross-locale tokenisation
●
Target: ACS 6.0 / ASS 1.2 (planning)