From 3ba0f458174f90a8f9e9fc67aa8a16b238275e91 Mon Sep 17 00:00:00 2001 From: Andrew Hind Date: Fri, 26 Jan 2007 09:48:27 +0000 Subject: [PATCH] Test fix ups for extra locales and to support non-stored non-indexed properties git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4935 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../search/MLAnaysisModeExpansionTest.java | 14 ++--- .../impl/lucene/LuceneIndexerImpl2.java | 60 ++++++++++--------- 2 files changed, 39 insertions(+), 35 deletions(-) diff --git a/source/java/org/alfresco/repo/search/MLAnaysisModeExpansionTest.java b/source/java/org/alfresco/repo/search/MLAnaysisModeExpansionTest.java index 9094f580cd..f26799a3a4 100644 --- a/source/java/org/alfresco/repo/search/MLAnaysisModeExpansionTest.java +++ b/source/java/org/alfresco/repo/search/MLAnaysisModeExpansionTest.java @@ -71,7 +71,7 @@ public class MLAnaysisModeExpansionTest extends TestCase { HashSet locales = new HashSet(); locales.addAll(MLAnalysisMode.getLocales(MLAnalysisMode.LOCALE_AND_ALL_CONTAINED_LOCALES, new Locale("en", "", ""), false)); - assertEquals(9, locales.size()); + assertTrue(locales.size()>= 9); assertTrue(locales.contains(new Locale("en", "", ""))); assertTrue(locales.contains(new Locale("en", "AU", ""))); assertTrue(locales.contains(new Locale("en", "GB", ""))); @@ -92,7 +92,7 @@ public class MLAnaysisModeExpansionTest extends TestCase locales = new HashSet(); locales.addAll(MLAnalysisMode.getLocales(MLAnalysisMode.ALL_LANGUAGES, new Locale("en", "GB", ""), false)); - assertEquals(9, locales.size()); + assertTrue(locales.size()>= 9); assertTrue(locales.contains(new Locale("en", "", ""))); assertTrue(locales.contains(new Locale("en", "AU", ""))); assertTrue(locales.contains(new Locale("en", "GB", ""))); @@ -105,7 +105,7 @@ public class MLAnaysisModeExpansionTest extends TestCase locales = new HashSet(); locales.addAll(MLAnalysisMode.getLocales(MLAnalysisMode.ALL_LANGUAGES_AND_ALL, new Locale("en", "GB", ""), false)); - assertEquals(10, locales.size()); + assertTrue(locales.size()>= 10); assertTrue(locales.contains(new Locale("", "", ""))); assertTrue(locales.contains(new Locale("en", "", ""))); assertTrue(locales.contains(new Locale("en", "AU", ""))); @@ -146,7 +146,7 @@ public class MLAnaysisModeExpansionTest extends TestCase locales = new HashSet(); locales.addAll(MLAnalysisMode.getLocales(MLAnalysisMode.ALL_COUNTRIES, new Locale("en", "", ""), false)); - assertEquals(9, locales.size()); + assertTrue(locales.size()>= 9); assertTrue(locales.contains(new Locale("en", "", ""))); assertTrue(locales.contains(new Locale("en", "AU", ""))); assertTrue(locales.contains(new Locale("en", "GB", ""))); @@ -164,7 +164,7 @@ public class MLAnaysisModeExpansionTest extends TestCase locales = new HashSet(); locales.addAll(MLAnalysisMode.getLocales(MLAnalysisMode.ALL_COUNTRIES_AND_ALL, new Locale("en", "", ""), false)); - assertEquals(10, locales.size()); + assertTrue(locales.size()>= 10); assertTrue(locales.contains(new Locale("", "", ""))); assertTrue(locales.contains(new Locale("en", "", ""))); assertTrue(locales.contains(new Locale("en", "AU", ""))); @@ -197,7 +197,7 @@ public class MLAnaysisModeExpansionTest extends TestCase locales = new HashSet(); locales.addAll(MLAnalysisMode.getLocales(MLAnalysisMode.EXACT_COUNRTY, new Locale("en", "", ""), false)); - assertEquals(9, locales.size()); + assertTrue(locales.size()>= 9); assertTrue(locales.contains(new Locale("en", "", ""))); assertTrue(locales.contains(new Locale("en", "AU", ""))); assertTrue(locales.contains(new Locale("en", "GB", ""))); @@ -216,7 +216,7 @@ public class MLAnaysisModeExpansionTest extends TestCase locales = new HashSet(); locales.addAll(MLAnalysisMode.getLocales(MLAnalysisMode.EXACT_COUNTRY_AND_ALL, new Locale("en", "", ""), false)); - assertEquals(10, locales.size()); + assertTrue(locales.size()>= 10); assertTrue(locales.contains(new Locale("", "", ""))); assertTrue(locales.contains(new Locale("en", "", ""))); assertTrue(locales.contains(new Locale("en", "AU", ""))); diff --git a/source/java/org/alfresco/repo/search/impl/lucene/LuceneIndexerImpl2.java b/source/java/org/alfresco/repo/search/impl/lucene/LuceneIndexerImpl2.java index 1d34402fd6..591405599e 100644 --- a/source/java/org/alfresco/repo/search/impl/lucene/LuceneIndexerImpl2.java +++ b/source/java/org/alfresco/repo/search/impl/lucene/LuceneIndexerImpl2.java @@ -1553,7 +1553,7 @@ public class LuceneIndexerImpl2 extends LuceneBase2 implements LuceneIndexer2 Field.Index.UN_TOKENIZED, Field.TermVector.NO)); doc.add(new Field(attributeName + ".size", Long.toString(contentData.getSize()), Field.Store.NO, Field.Index.TOKENIZED, Field.TermVector.NO)); - + // TODO: Use the node locale in preferanced to the system locale Locale locale = contentData.getLocale(); if (locale == null) @@ -1692,6 +1692,7 @@ public class LuceneIndexerImpl2 extends LuceneBase2 implements LuceneIndexer2 { Field.Store fieldStore = store ? Field.Store.YES : Field.Store.NO; Field.Index fieldIndex; + if (index) { if (tokenise) @@ -1708,42 +1709,45 @@ public class LuceneIndexerImpl2 extends LuceneBase2 implements LuceneIndexer2 fieldIndex = Field.Index.NO; } - if (isMultiLingual) + if ((fieldIndex != Field.Index.NO) || (fieldStore != Field.Store.NO)) { - MLText mlText = DefaultTypeConverter.INSTANCE.convert(MLText.class, value); - for (Locale locale : mlText.getLocales()) + if (isMultiLingual) { - String localeString = mlText.getValue(locale); + MLText mlText = DefaultTypeConverter.INSTANCE.convert(MLText.class, value); + for (Locale locale : mlText.getLocales()) + { + String localeString = mlText.getValue(locale); + StringBuilder builder = new StringBuilder(); + builder.append("\u0000").append(locale.toString()).append("\u0000").append(localeString); + doc.add(new Field(attributeName, builder.toString(), fieldStore, fieldIndex, + Field.TermVector.NO)); + } + } + else if (isText) + { + // TODO: Use the node locale in preferanced to the system locale + Locale locale = null; + + Serializable localeProperty = nodeService.getProperty(nodeRef, ContentModel.PROP_LOCALE); + if (localeProperty != null) + { + locale = DefaultTypeConverter.INSTANCE.convert(Locale.class, localeProperty); + } + + if (locale == null) + { + locale = Locale.getDefault(); + } StringBuilder builder = new StringBuilder(); - builder.append("\u0000").append(locale.toString()).append("\u0000").append(localeString); + builder.append("\u0000").append(locale.toString()).append("\u0000").append(strValue); doc.add(new Field(attributeName, builder.toString(), fieldStore, fieldIndex, Field.TermVector.NO)); } - } - else if (isText) - { - // TODO: Use the node locale in preferanced to the system locale - Locale locale = null; - - Serializable localeProperty = nodeService.getProperty(nodeRef, ContentModel.PROP_LOCALE); - if (localeProperty != null) + else { - locale = DefaultTypeConverter.INSTANCE.convert(Locale.class, localeProperty); + doc.add(new Field(attributeName, strValue, fieldStore, fieldIndex, Field.TermVector.NO)); } - - if (locale == null) - { - locale = Locale.getDefault(); - } - StringBuilder builder = new StringBuilder(); - builder.append("\u0000").append(locale.toString()).append("\u0000").append(strValue); - doc.add(new Field(attributeName, builder.toString(), fieldStore, fieldIndex, Field.TermVector.NO)); } - else - { - doc.add(new Field(attributeName, strValue, fieldStore, fieldIndex, Field.TermVector.NO)); - } - } }