mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Build fix
1) for tokenisation = false 2) so d:datetime properties index as expected git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@12444 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -29,9 +29,19 @@
|
|||||||
</property>
|
</property>
|
||||||
<property name="ia:fromDate">
|
<property name="ia:fromDate">
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="ia:toDate">
|
<property name="ia:toDate">
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="ia:whereEvent">
|
<property name="ia:whereEvent">
|
||||||
<type>d:text</type>
|
<type>d:text</type>
|
||||||
@@ -54,9 +64,19 @@
|
|||||||
</property>
|
</property>
|
||||||
<property name="ia:fromDateDefault">
|
<property name="ia:fromDateDefault">
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="ia:toDateDefault">
|
<property name="ia:toDateDefault">
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="ia:whereEventDefault">
|
<property name="ia:whereEventDefault">
|
||||||
<type>d:text</type>
|
<type>d:text</type>
|
||||||
|
@@ -404,6 +404,11 @@
|
|||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
<protected>true</protected>
|
<protected>true</protected>
|
||||||
<mandatory enforced="true">true</mandatory>
|
<mandatory enforced="true">true</mandatory>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="cm:creator">
|
<property name="cm:creator">
|
||||||
<title>Creator</title>
|
<title>Creator</title>
|
||||||
@@ -416,6 +421,11 @@
|
|||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
<protected>true</protected>
|
<protected>true</protected>
|
||||||
<mandatory enforced="true">true</mandatory>
|
<mandatory enforced="true">true</mandatory>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="cm:modifier">
|
<property name="cm:modifier">
|
||||||
<title>Modifier</title>
|
<title>Modifier</title>
|
||||||
@@ -427,6 +437,11 @@
|
|||||||
<title>Accessed</title>
|
<title>Accessed</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
<protected>true</protected>
|
<protected>true</protected>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
</aspect>
|
</aspect>
|
||||||
@@ -490,6 +505,11 @@
|
|||||||
<property name="cm:removeAfter">
|
<property name="cm:removeAfter">
|
||||||
<title>Remove After</title>
|
<title>Remove After</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
<mandatory-aspects>
|
<mandatory-aspects>
|
||||||
@@ -650,10 +670,20 @@
|
|||||||
<property name="cm:from">
|
<property name="cm:from">
|
||||||
<title>Effective From</title>
|
<title>Effective From</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="cm:to">
|
<property name="cm:to">
|
||||||
<title>Effective To</title>
|
<title>Effective To</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
</aspect>
|
</aspect>
|
||||||
@@ -862,6 +892,11 @@
|
|||||||
<property name="cm:sentdate">
|
<property name="cm:sentdate">
|
||||||
<title>Sent Date</title>
|
<title>Sent Date</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
</aspect>
|
</aspect>
|
||||||
@@ -949,10 +984,20 @@
|
|||||||
<property name="cm:published">
|
<property name="cm:published">
|
||||||
<title>Published</title>
|
<title>Published</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="cm:updated">
|
<property name="cm:updated">
|
||||||
<title>Updated</title>
|
<title>Updated</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
</aspect>
|
</aspect>
|
||||||
|
@@ -160,6 +160,11 @@
|
|||||||
<property name="sys:archivedDate">
|
<property name="sys:archivedDate">
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
<mandatory>true</mandatory>
|
<mandatory>true</mandatory>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="sys:archivedOriginalOwner">
|
<property name="sys:archivedOriginalOwner">
|
||||||
<type>d:text</type>
|
<type>d:text</type>
|
||||||
|
@@ -396,6 +396,11 @@
|
|||||||
<title>Time Of Deploy Attempt</title>
|
<title>Time Of Deploy Attempt</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
<mandatory enforced="true">true</mandatory>
|
<mandatory enforced="true">true</mandatory>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
<associations>
|
<associations>
|
||||||
@@ -431,11 +436,21 @@
|
|||||||
<title>Time Deploy Started</title>
|
<title>Time Deploy Started</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
<mandatory enforced="true">true</mandatory>
|
<mandatory enforced="true">true</mandatory>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="wca:deployendtime">
|
<property name="wca:deployendtime">
|
||||||
<title>Time Deploy Finished</title>
|
<title>Time Deploy Finished</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
<mandatory enforced="true">true</mandatory>
|
<mandatory enforced="true">true</mandatory>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="wca:deploysuccessful">
|
<property name="wca:deploysuccessful">
|
||||||
<title>Deployment Successful</title>
|
<title>Deployment Successful</title>
|
||||||
@@ -624,6 +639,11 @@
|
|||||||
<title>Expiration Date</title>
|
<title>Expiration Date</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
<mandatory enforced="true">true</mandatory>
|
<mandatory enforced="true">true</mandatory>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
</properties>
|
</properties>
|
||||||
</aspect>
|
</aspect>
|
||||||
|
@@ -238,6 +238,11 @@
|
|||||||
<title>Launch Date</title>
|
<title>Launch Date</title>
|
||||||
<description>Date the content in the submission should be committed</description>
|
<description>Date the content in the submission should be committed</description>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="wcmwf:validateLinks">
|
<property name="wcmwf:validateLinks">
|
||||||
<title>Validate Links</title>
|
<title>Validate Links</title>
|
||||||
|
@@ -1014,6 +1014,9 @@ public class ADMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<NodeRef> imp
|
|||||||
{
|
{
|
||||||
doc.add(new Field(attributeName + "." + localeText + ".sort", t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
doc.add(new Field(attributeName + "." + localeText + ".sort", t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
doc.add(new Field(attributeName, t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
@@ -1083,6 +1086,7 @@ public class ADMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<NodeRef> imp
|
|||||||
{
|
{
|
||||||
locale = I18NUtil.getLocale();
|
locale = I18NUtil.getLocale();
|
||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder builder;
|
StringBuilder builder;
|
||||||
MLAnalysisMode analysisMode;
|
MLAnalysisMode analysisMode;
|
||||||
VerbatimAnalyser vba;
|
VerbatimAnalyser vba;
|
||||||
@@ -1118,6 +1122,8 @@ public class ADMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<NodeRef> imp
|
|||||||
{
|
{
|
||||||
doc.add(new Field(attributeName + "." + localeText + ".sort", t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
doc.add(new Field(attributeName + "." + localeText + ".sort", t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
doc.add(new Field(attributeName, t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
@@ -1176,7 +1182,7 @@ public class ADMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<NodeRef> imp
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
date = df.parse(strValue);
|
date = df.parse(strValue);
|
||||||
doc.add(new Field(attributeName + ".sort", df.format(date), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
doc.add(new Field(attributeName, df.format(date), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
}
|
}
|
||||||
catch (ParseException e)
|
catch (ParseException e)
|
||||||
{
|
{
|
||||||
|
@@ -54,7 +54,10 @@ import org.alfresco.repo.content.transform.ContentTransformer;
|
|||||||
import org.alfresco.repo.dictionary.IndexTokenisationMode;
|
import org.alfresco.repo.dictionary.IndexTokenisationMode;
|
||||||
import org.alfresco.repo.domain.PropertyValue;
|
import org.alfresco.repo.domain.PropertyValue;
|
||||||
import org.alfresco.repo.search.IndexMode;
|
import org.alfresco.repo.search.IndexMode;
|
||||||
|
import org.alfresco.repo.search.MLAnalysisMode;
|
||||||
import org.alfresco.repo.search.impl.lucene.analysis.DateTimeAnalyser;
|
import org.alfresco.repo.search.impl.lucene.analysis.DateTimeAnalyser;
|
||||||
|
import org.alfresco.repo.search.impl.lucene.analysis.MLTokenDuplicator;
|
||||||
|
import org.alfresco.repo.search.impl.lucene.analysis.VerbatimAnalyser;
|
||||||
import org.alfresco.repo.search.impl.lucene.fts.FTSIndexerAware;
|
import org.alfresco.repo.search.impl.lucene.fts.FTSIndexerAware;
|
||||||
import org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexer;
|
import org.alfresco.repo.search.impl.lucene.fts.FullTextSearchIndexer;
|
||||||
import org.alfresco.repo.transaction.AlfrescoTransactionSupport;
|
import org.alfresco.repo.transaction.AlfrescoTransactionSupport;
|
||||||
@@ -85,6 +88,7 @@ import org.alfresco.util.ISO9075;
|
|||||||
import org.alfresco.util.Pair;
|
import org.alfresco.util.Pair;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
|
import org.apache.lucene.analysis.Token;
|
||||||
import org.apache.lucene.document.Document;
|
import org.apache.lucene.document.Document;
|
||||||
import org.apache.lucene.document.Field;
|
import org.apache.lucene.document.Field;
|
||||||
import org.apache.lucene.index.IndexReader;
|
import org.apache.lucene.index.IndexReader;
|
||||||
@@ -739,6 +743,8 @@ public class AVMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<String> impl
|
|||||||
|
|
||||||
if (isContent)
|
if (isContent)
|
||||||
{
|
{
|
||||||
|
// Content is always tokenised
|
||||||
|
|
||||||
ContentData contentData = DefaultTypeConverter.INSTANCE.convert(ContentData.class, serializableValue);
|
ContentData contentData = DefaultTypeConverter.INSTANCE.convert(ContentData.class, serializableValue);
|
||||||
if (!index || contentData.getMimetype() == null)
|
if (!index || contentData.getMimetype() == null)
|
||||||
{
|
{
|
||||||
@@ -815,6 +821,12 @@ public class AVMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<String> impl
|
|||||||
transformer.transform(reader, writer);
|
transformer.transform(reader, writer);
|
||||||
// point the reader to the new-written content
|
// point the reader to the new-written content
|
||||||
reader = writer.getReader();
|
reader = writer.getReader();
|
||||||
|
// Check that the reader is a view onto something concrete
|
||||||
|
if (!reader.exists())
|
||||||
|
{
|
||||||
|
throw new ContentIOException("The transformation did not write any content, yet: \n"
|
||||||
|
+ " transformer: " + transformer + "\n" + " temp writer: " + writer);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (ContentIOException e)
|
catch (ContentIOException e)
|
||||||
{
|
{
|
||||||
@@ -899,9 +911,88 @@ public class AVMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<String> impl
|
|||||||
for (Locale locale : mlText.getLocales())
|
for (Locale locale : mlText.getLocales())
|
||||||
{
|
{
|
||||||
String localeString = mlText.getValue(locale);
|
String localeString = mlText.getValue(locale);
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder;
|
||||||
|
MLAnalysisMode analysisMode;
|
||||||
|
VerbatimAnalyser vba;
|
||||||
|
MLTokenDuplicator duplicator;
|
||||||
|
Token t;
|
||||||
|
switch (tokenise)
|
||||||
|
{
|
||||||
|
case TRUE:
|
||||||
|
builder = new StringBuilder();
|
||||||
builder.append("\u0000").append(locale.toString()).append("\u0000").append(localeString);
|
builder.append("\u0000").append(locale.toString()).append("\u0000").append(localeString);
|
||||||
doc.add(new Field(attributeName, builder.toString(), fieldStore, fieldIndex, Field.TermVector.NO));
|
doc.add(new Field(attributeName, builder.toString(), fieldStore, fieldIndex, Field.TermVector.NO));
|
||||||
|
break;
|
||||||
|
case FALSE:
|
||||||
|
// analyse ml text
|
||||||
|
analysisMode = getLuceneConfig().getDefaultMLIndexAnalysisMode();
|
||||||
|
// Do the analysis here
|
||||||
|
vba = new VerbatimAnalyser(false);
|
||||||
|
duplicator = new MLTokenDuplicator(vba.tokenStream(attributeName, new StringReader(localeString)), locale, null, analysisMode);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while ((t = duplicator.next()) != null)
|
||||||
|
{
|
||||||
|
String localeText = "";
|
||||||
|
if (t.termText().indexOf('{') == 0)
|
||||||
|
{
|
||||||
|
int end = t.termText().indexOf('}', 1);
|
||||||
|
if (end != -1)
|
||||||
|
{
|
||||||
|
localeText = t.termText().substring(1, end);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (localeText.length() > 0)
|
||||||
|
{
|
||||||
|
doc.add(new Field(attributeName, t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
|
}
|
||||||
|
|
||||||
|
doc.add(new Field(attributeName, t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
// TODO ??
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case BOTH:
|
||||||
|
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));
|
||||||
|
|
||||||
|
// analyse ml text
|
||||||
|
analysisMode = getLuceneConfig().getDefaultMLIndexAnalysisMode();
|
||||||
|
// Do the analysis here
|
||||||
|
vba = new VerbatimAnalyser(false);
|
||||||
|
duplicator = new MLTokenDuplicator(vba.tokenStream(attributeName, new StringReader(localeString)), locale, null, analysisMode);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while ((t = duplicator.next()) != null)
|
||||||
|
{
|
||||||
|
String localeText = "";
|
||||||
|
if (t.termText().indexOf('{') == 0)
|
||||||
|
{
|
||||||
|
int end = t.termText().indexOf('}', 1);
|
||||||
|
if (end != -1)
|
||||||
|
{
|
||||||
|
localeText = t.termText().substring(1, end);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (localeText.length() > 0)
|
||||||
|
{
|
||||||
|
doc.add(new Field(attributeName + "." + localeText + ".sort", t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
// TODO ??
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (isText)
|
else if (isText)
|
||||||
@@ -929,6 +1020,10 @@ public class AVMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<String> impl
|
|||||||
}
|
}
|
||||||
|
|
||||||
StringBuilder builder;
|
StringBuilder builder;
|
||||||
|
MLAnalysisMode analysisMode;
|
||||||
|
VerbatimAnalyser vba;
|
||||||
|
MLTokenDuplicator duplicator;
|
||||||
|
Token t;
|
||||||
switch (tokenise)
|
switch (tokenise)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
@@ -938,25 +1033,98 @@ public class AVMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<String> impl
|
|||||||
doc.add(new Field(attributeName, builder.toString(), fieldStore, fieldIndex, Field.TermVector.NO));
|
doc.add(new Field(attributeName, builder.toString(), fieldStore, fieldIndex, Field.TermVector.NO));
|
||||||
break;
|
break;
|
||||||
case FALSE:
|
case FALSE:
|
||||||
doc.add(new Field(attributeName, strValue, fieldStore, fieldIndex, Field.TermVector.NO));
|
analysisMode = getLuceneConfig().getDefaultMLIndexAnalysisMode();
|
||||||
|
// Do the analysis here
|
||||||
|
vba = new VerbatimAnalyser(false);
|
||||||
|
duplicator = new MLTokenDuplicator(vba.tokenStream(attributeName, new StringReader(strValue)), locale, null, analysisMode);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while ((t = duplicator.next()) != null)
|
||||||
|
{
|
||||||
|
String localeText = "";
|
||||||
|
if (t.termText().indexOf('{') == 0)
|
||||||
|
{
|
||||||
|
int end = t.termText().indexOf('}', 1);
|
||||||
|
if (end != -1)
|
||||||
|
{
|
||||||
|
localeText = t.termText().substring(1, end);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (localeText.length() > 0)
|
||||||
|
{
|
||||||
|
doc.add(new Field(attributeName, t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
|
}
|
||||||
|
|
||||||
|
doc.add(new Field(attributeName, t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
// TODO ??
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case BOTH:
|
case BOTH:
|
||||||
builder = new StringBuilder();
|
builder = new StringBuilder();
|
||||||
builder.append("\u0000").append(locale.toString()).append("\u0000").append(strValue);
|
builder.append("\u0000").append(locale.toString()).append("\u0000").append(strValue);
|
||||||
doc.add(new Field(attributeName, builder.toString(), fieldStore, fieldIndex, Field.TermVector.NO));
|
doc.add(new Field(attributeName, builder.toString(), fieldStore, fieldIndex, Field.TermVector.NO));
|
||||||
|
|
||||||
doc.add(new Field(attributeName, strValue, fieldStore, fieldIndex, Field.TermVector.NO));
|
analysisMode = getLuceneConfig().getDefaultMLIndexAnalysisMode();
|
||||||
|
// Do the analysis here
|
||||||
|
vba = new VerbatimAnalyser(false);
|
||||||
|
duplicator = new MLTokenDuplicator(vba.tokenStream(attributeName, new StringReader(strValue)), locale, null, analysisMode);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
while ((t = duplicator.next()) != null)
|
||||||
|
{
|
||||||
|
String localeText = "";
|
||||||
|
if (t.termText().indexOf('{') == 0)
|
||||||
|
{
|
||||||
|
int end = t.termText().indexOf('}', 1);
|
||||||
|
if (end != -1)
|
||||||
|
{
|
||||||
|
localeText = t.termText().substring(1, end);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (localeText.length() > 0)
|
||||||
|
{
|
||||||
|
doc.add(new Field(attributeName + "." + localeText + ".sort", t.termText(), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
// TODO ??
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (isDateTime)
|
else if (isDateTime)
|
||||||
{
|
{
|
||||||
|
SimpleDateFormat df;
|
||||||
|
Date date;
|
||||||
|
switch (tokenise)
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
case TRUE:
|
||||||
|
doc.add(new Field(attributeName, strValue, fieldStore, fieldIndex, Field.TermVector.NO));
|
||||||
|
break;
|
||||||
|
case FALSE:
|
||||||
|
df = CachingDateFormat.getDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", true);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
date = df.parse(strValue);
|
||||||
|
doc.add(new Field(attributeName, df.format(date), Field.Store.NO, Field.Index.NO_NORMS, Field.TermVector.NO));
|
||||||
|
}
|
||||||
|
catch (ParseException e)
|
||||||
|
{
|
||||||
|
// ignore for ordering
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case BOTH:
|
||||||
doc.add(new Field(attributeName, strValue, fieldStore, fieldIndex, Field.TermVector.NO));
|
doc.add(new Field(attributeName, strValue, fieldStore, fieldIndex, Field.TermVector.NO));
|
||||||
|
|
||||||
SimpleDateFormat df = CachingDateFormat.getDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", true);
|
df = CachingDateFormat.getDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", true);
|
||||||
|
|
||||||
Date date;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
date = df.parse(strValue);
|
date = df.parse(strValue);
|
||||||
@@ -966,6 +1134,8 @@ public class AVMLuceneIndexerImpl extends AbstractLuceneIndexerImpl<String> impl
|
|||||||
{
|
{
|
||||||
// ignore for ordering
|
// ignore for ordering
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -49,12 +49,22 @@
|
|||||||
</property>
|
</property>
|
||||||
<property name="usr:accountExpiryDate">
|
<property name="usr:accountExpiryDate">
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="usr:credentialsExpire">
|
<property name="usr:credentialsExpire">
|
||||||
<type>d:boolean</type>
|
<type>d:boolean</type>
|
||||||
</property>
|
</property>
|
||||||
<property name="usr:credentialsExpiryDate">
|
<property name="usr:credentialsExpiryDate">
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="usr:accountLocked">
|
<property name="usr:accountLocked">
|
||||||
<type>d:boolean</type>
|
<type>d:boolean</type>
|
||||||
|
@@ -109,6 +109,11 @@
|
|||||||
<title>Created</title>
|
<title>Created</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
<protected>true</protected>
|
<protected>true</protected>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="ver2:frozenCreator">
|
<property name="ver2:frozenCreator">
|
||||||
<title>Creator</title>
|
<title>Creator</title>
|
||||||
@@ -119,6 +124,11 @@
|
|||||||
<title>Modified</title>
|
<title>Modified</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
<protected>true</protected>
|
<protected>true</protected>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
<property name="ver2:frozenModifier">
|
<property name="ver2:frozenModifier">
|
||||||
<title>Modifier</title>
|
<title>Modifier</title>
|
||||||
@@ -129,6 +139,11 @@
|
|||||||
<title>Accessed</title>
|
<title>Accessed</title>
|
||||||
<type>d:datetime</type>
|
<type>d:datetime</type>
|
||||||
<protected>true</protected>
|
<protected>true</protected>
|
||||||
|
<index enabled="true">
|
||||||
|
<atomic>true</atomic>
|
||||||
|
<stored>false</stored>
|
||||||
|
<tokenised>both</tokenised>
|
||||||
|
</index>
|
||||||
</property>
|
</property>
|
||||||
|
|
||||||
</properties>
|
</properties>
|
||||||
|
Reference in New Issue
Block a user