Package org.alfresco.solr
Class AlfrescoSolrDataModel
java.lang.Object
org.alfresco.solr.AlfrescoSolrDataModel
- All Implemented Interfaces:
org.alfresco.repo.search.adaptor.QueryConstants
public class AlfrescoSolrDataModel
extends Object
implements org.alfresco.repo.search.adaptor.QueryConstants
- Author:
- Andy
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic enumstatic classstatic enumstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringprotected static final org.slf4j.LoggerFields inherited from interface org.alfresco.repo.search.adaptor.QueryConstants
FIELD_ACLID, FIELD_ACLTXCOMMITTIME, FIELD_ACLTXID, FIELD_ALL, FIELD_ANAME, FIELD_ANCESTOR, FIELD_APATH, FIELD_ASPECT, FIELD_ASSOCTYPEQNAME, FIELD_AUTHORITY, FIELD_AUTHORITYSET, FIELD_CASCADE_FLAG, FIELD_CASCADETX, FIELD_CLASS, FIELD_CONTENT_DOC_ID_SUFFIX, FIELD_DBID, FIELD_DENIED, FIELD_DENYSET, FIELD_DOC_TYPE, FIELD_ENCODING_SUFFIX, FIELD_EXACTASPECT, FIELD_EXACTTYPE, FIELD_EXCEPTION_MESSAGE, FIELD_EXCEPTION_STACK, FIELD_EXISTS, FIELD_FIELDS, FIELD_FINGERPRINT, FIELD_FTSREF, FIELD_FTSSTATUS, FIELD_GEO, FIELD_ID, FIELD_INACLTXID, FIELD_INTXID, FIELD_ISCATEGORY, FIELD_ISCONTAINER, FIELD_ISNODE, FIELD_ISNOTNULL, FIELD_ISNULL, FIELD_ISROOT, FIELD_ISUNSET, FIELD_LID, FIELD_LINKASPECT, FIELD_LOCALE_SUFFIX, FIELD_MIMETYPE_SUFFIX, FIELD_NO_LOCALE_SUFFIX, FIELD_NPATH, FIELD_NULLPROPERTIES, FIELD_OWNER, FIELD_OWNERSET, FIELD_PARENT, FIELD_PARENT_ASSOC_CRC, FIELD_PATH, FIELD_PATHWITHREPEATS, FIELD_PNAME, FIELD_PRIMARYASSOCQNAME, FIELD_PRIMARYASSOCTYPEQNAME, FIELD_PRIMARYPARENT, FIELD_PROPERTIES, FIELD_QNAME, FIELD_READER, FIELD_READERSET, FIELD_S_ACLTXCOMMITTIME, FIELD_S_ACLTXID, FIELD_S_INACLTXID, FIELD_S_INTXID, FIELD_S_TXCOMMITTIME, FIELD_S_TXID, FIELD_SITE, FIELD_SIZE_SUFFIX, FIELD_SOLR_LOCALISED_UNTOKENISED_SUFFIX, FIELD_SOLR_NOLOCALE_TOKENISED_SUFFIX, FIELD_SOLR_NOLOCALE_UNTOKENISED_SUFFIX, FIELD_SOLR_UNIT_OF_TIME_DAY_OF_WEEK_SUFFIX, FIELD_SOLR_UNIT_OF_TIME_DAY_OF_YEAR_SUFFIX, FIELD_SOLR_UNIT_OF_TIME_DAY_SUFFIX, FIELD_SOLR_UNIT_OF_TIME_HOUR_SUFFIX, FIELD_SOLR_UNIT_OF_TIME_MINUTE_SUFFIX, FIELD_SOLR_UNIT_OF_TIME_MONTH_SUFFIX, FIELD_SOLR_UNIT_OF_TIME_QUARTER_SUFFIX, FIELD_SOLR_UNIT_OF_TIME_SECOND_SUFFIX, FIELD_SOLR_UNIT_OF_TIME_YEAR_SUFFIX, FIELD_SOLR4_ID, FIELD_SORT_SUFFIX, FIELD_TAG, FIELD_TAG_SUGGEST, FIELD_TENANT, FIELD_TEXT, FIELD_TRANSFORMATION_EXCEPTION_SUFFIX, FIELD_TRANSFORMATION_STATUS_SUFFIX, FIELD_TRANSFORMATION_TIME_SUFFIX, FIELD_TX, FIELD_TXCOMMITTIME, FIELD_TXID, FIELD_TYPE, FIELD_VERSION, PROPERTY_FIELD_PREFIX -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidclose()Destructures a document identifier in the three compounding parts (tenant and dbid).destructuredDateTimePartFieldNamePrefix(String sourceFieldName) Returns the prefix used for denoting a field which is meant to represent a constituent part of a date or datetime (e.g.static StringgetAclChangeSetDocumentId(Long aclChangeSetId) Returns the ACL ChangeSet Document identifier in the following format TRACKER!CHANGESET!<ACL_CHANGESET_ID>static StringgetAclDocumentId(String tenant, Long aclId) Returns the ACL Document identifier in the following format <TENANT>!<ACLID>!ACLList<org.alfresco.solr.client.AlfrescoModel>Returns the Alfresco models associated with the current dictionary.getAlfrescoPropertyFromSchemaField(String schemaField) org.alfresco.opencmis.dictionary.CMISDictionaryServicegetCMISDictionary(String alternativeDictionary, org.apache.chemistry.opencmis.commons.enums.CmisVersion cmisVersion) Gets the CMISDictionaryService, if an Alternative dictionary is specified it tries to get that.org.alfresco.opencmis.search.CmisFunctionEvaluationContextgetCMISFunctionEvaluationContext(org.alfresco.opencmis.search.CMISQueryOptions.CMISQueryMode mode, org.apache.chemistry.opencmis.commons.enums.CmisVersion cmisVersion, String alternativeDictionary) org.apache.lucene.search.QuerygetCMISQuery(org.alfresco.opencmis.search.CMISQueryOptions.CMISQueryMode mode, org.alfresco.util.Pair<org.alfresco.service.cmr.search.SearchParameters, Boolean> searchParametersAndFilter, org.apache.solr.request.SolrQueryRequest req, org.alfresco.repo.search.impl.querymodel.Query queryModelQuery, org.apache.chemistry.opencmis.commons.enums.CmisVersion cmisVersion, String alternativeDictionary) static PropertiesgetDateDerivedField(org.alfresco.service.namespace.QName propertyQName, String suffix) org.alfresco.repo.dictionary.DictionaryComponentgetDictionaryService(String alternativeDictionary) Gets a DictionaryService, if an Alternative dictionary is specified it tries to get that.getFieldForNonText(org.alfresco.service.cmr.dictionary.PropertyDefinition propertyDefinition) org.apache.lucene.search.QuerygetFTSQuery(org.alfresco.util.Pair<org.alfresco.service.cmr.search.SearchParameters, Boolean> searchParametersAndFilter, org.apache.solr.request.SolrQueryRequest req, org.alfresco.repo.search.impl.parsers.FTSQueryParser.RerankPhase rerankPhase) getIndexedFieldForSpecializedPropertyMetadata(org.alfresco.service.namespace.QName propertyQName, AlfrescoSolrDataModel.SpecializedFieldType type) getIndexedFieldNamesForProperty(org.alfresco.service.namespace.QName propertyQName) Get all the field names into which we must copy the source datastatic AlfrescoSolrDataModelorg.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext<org.apache.lucene.search.Query,org.apache.lucene.search.Sort, org.apache.lucene.queryparser.classic.ParseException> getLuceneQueryBuilderContext(org.alfresco.service.cmr.search.SearchParameters searchParameters, org.apache.solr.request.SolrQueryRequest req, String alternativeDictionary, org.alfresco.repo.search.impl.parsers.FTSQueryParser.RerankPhase rerankPhase) getLuceneQueryParser(org.alfresco.service.cmr.search.SearchParameters searchParameters, org.apache.solr.request.SolrQueryRequest req, org.alfresco.repo.search.impl.parsers.FTSQueryParser.RerankPhase rerankPhase) org.alfresco.repo.dictionary.NamespaceDAOstatic StringgetNodeDocumentId(String tenant, Long dbid) Returns the Solr document identifier in the following format <TENANT>!<!<DBID>org.alfresco.service.cmr.dictionary.PropertyDefinitiongetPropertyDefinition(org.alfresco.service.namespace.QName propertyQName) getQueryableFields(org.alfresco.service.namespace.QName propertyQName, AlfrescoSolrDataModel.SpecializedFieldType type, AlfrescoSolrDataModel.FieldUse fieldUse) static FilegetStoredContentField(org.alfresco.service.namespace.QName propertyQName) getStoredContentField(org.alfresco.service.namespace.QName propertyQName, String suffix) getStoredMLTextField(org.alfresco.service.namespace.QName propertyQName) getStoredMLTextField(org.alfresco.service.namespace.QName propertyQName, String suffix) getStoredTextField(org.alfresco.service.namespace.QName propertyQName) getStoredTextField(org.alfresco.service.namespace.QName propertyQName, String suffix) static StringgetTenantId(String tenant) getTextField(String ending) static StringgetTransactionDocumentId(Long txId) Returns the Transaction Document identifier in the following format TRACKER!TX!<TX_ID>booleanisDerivedDateField(String suffix) booleanisTextField(org.alfresco.service.cmr.dictionary.PropertyDefinition propertyDefinition) mapNonPropertyFields(String queryField) mapProperty(String potentialProperty, AlfrescoSolrDataModel.FieldUse fieldUse, org.apache.solr.request.SolrQueryRequest req) mapProperty(String potentialProperty, AlfrescoSolrDataModel.FieldUse fieldUse, org.apache.solr.request.SolrQueryRequest req, int position) mapStoredProperty(String potentialProperty, org.apache.solr.request.SolrQueryRequest req) return the stored field associated to potentialProperty parameterorg.alfresco.repo.search.impl.querymodel.QueryparseCMISQueryToAlfrescoAbstractQuery(org.alfresco.opencmis.search.CMISQueryOptions.CMISQueryMode mode, org.alfresco.service.cmr.search.SearchParameters searchParameters, org.apache.solr.request.SolrQueryRequest req, String alternativeDictionary, org.apache.chemistry.opencmis.commons.enums.CmisVersion cmisVersion) static LongparseTransactionId(String documentId) Extracts the transaction identifier from the input document identifier.booleanputModel(org.alfresco.repo.dictionary.M2Model model) voidremoveModel(org.alfresco.service.namespace.QName modelQName) void
-
Field Details
-
CONTENT_S_LOCALE_PREFIX
- See Also:
-
log
protected static final org.slf4j.Logger log -
DEFAULT_TENANT
- See Also:
-
-
Constructor Details
-
AlfrescoSolrDataModel
public AlfrescoSolrDataModel()
-
-
Method Details
-
close
public void close() -
getTenantId
-
getAclDocumentId
Returns the ACL Document identifier in the following format <TENANT>!<ACLID>!ACL- Parameters:
tenant- the tenant code.aclId- the acl identifer- Returns:
- the ACL Document identifier (<TENANT>!<ACLID>!ACL)
-
getAclChangeSetDocumentId
Returns the ACL ChangeSet Document identifier in the following format TRACKER!CHANGESET!<ACL_CHANGESET_ID>- Parameters:
aclChangeSetId- the ACL changeset identifier.- Returns:
- the ACL ChangeSet Document identifier (TRACKER!CHANGESET!<ACL_CHANGESET_ID>)
-
parseTransactionId
Extracts the transaction identifier from the input document identifier. The "input document identifier" is the alphanumeric identifier used for Solr documents.- Parameters:
documentId- the document identifier.- Returns:
- the numeric ACL changeset identifier.
-
getNodeDocumentId
Returns the Solr document identifier in the following format <TENANT>!<!<DBID>- Parameters:
tenant- the tenant code.dbid- the DB identifier.- Returns:
- the Solr document identifier in the following format <TENANT>!<!<DBID>
-
decodeNodeDocumentId
Destructures a document identifier in the three compounding parts (tenant and dbid).- Parameters:
id- the document identifier.- Returns:
- a
AlfrescoSolrDataModel.TenantDbIdinstance containing the destructured identifier.
-
getTransactionDocumentId
Returns the Transaction Document identifier in the following format TRACKER!TX!<TX_ID>- Parameters:
txId- the transaction identifier.- Returns:
- the Transaction Document identifier in the following format TRACKER!TX!<TX_ID>
-
getAlfrescoPropertyFromSchemaField
-
getInstance
-
getNamespaceDAO
public org.alfresco.repo.dictionary.NamespaceDAO getNamespaceDAO() -
getCommonConfig
-
getResourceClassLoader
- Returns:
- ClassLoader
-
getResourceDirectory
-
getDictionaryService
public org.alfresco.repo.dictionary.DictionaryComponent getDictionaryService(String alternativeDictionary) Gets a DictionaryService, if an Alternative dictionary is specified it tries to get that. It will attempt to get the DEFAULT dictionary service if null is specified or it can't find a dictionary with the name of "alternativeDictionary"- Parameters:
alternativeDictionary- - can be null;- Returns:
- DictionaryService
-
getIndexedFieldForSpecializedPropertyMetadata
public AlfrescoSolrDataModel.IndexedField getIndexedFieldForSpecializedPropertyMetadata(org.alfresco.service.namespace.QName propertyQName, AlfrescoSolrDataModel.SpecializedFieldType type) -
getQueryableFields
public AlfrescoSolrDataModel.IndexedField getQueryableFields(org.alfresco.service.namespace.QName propertyQName, AlfrescoSolrDataModel.SpecializedFieldType type, AlfrescoSolrDataModel.FieldUse fieldUse) -
getStoredTextField
-
getStoredTextField
-
getStoredMLTextField
-
getStoredMLTextField
-
getStoredContentField
-
getStoredContentField
-
getDateDerivedField
-
getDateDerivedSuffix
-
getIndexedFieldNamesForProperty
public AlfrescoSolrDataModel.IndexedField getIndexedFieldNamesForProperty(org.alfresco.service.namespace.QName propertyQName) Get all the field names into which we must copy the source data- Parameters:
propertyQName- QName- Returns:
- IndexedField
-
isTextField
public boolean isTextField(org.alfresco.service.cmr.dictionary.PropertyDefinition propertyDefinition) -
getFieldForNonText
public String getFieldForNonText(org.alfresco.service.cmr.dictionary.PropertyDefinition propertyDefinition) -
getPropertyDefinition
public org.alfresco.service.cmr.dictionary.PropertyDefinition getPropertyDefinition(org.alfresco.service.namespace.QName propertyQName) -
putModel
public boolean putModel(org.alfresco.repo.dictionary.M2Model model) -
removeModel
public void removeModel(org.alfresco.service.namespace.QName modelQName) -
afterInitModels
public void afterInitModels() -
parseCMISQueryToAlfrescoAbstractQuery
public org.alfresco.repo.search.impl.querymodel.Query parseCMISQueryToAlfrescoAbstractQuery(org.alfresco.opencmis.search.CMISQueryOptions.CMISQueryMode mode, org.alfresco.service.cmr.search.SearchParameters searchParameters, org.apache.solr.request.SolrQueryRequest req, String alternativeDictionary, org.apache.chemistry.opencmis.commons.enums.CmisVersion cmisVersion) -
getCMISFunctionEvaluationContext
public org.alfresco.opencmis.search.CmisFunctionEvaluationContext getCMISFunctionEvaluationContext(org.alfresco.opencmis.search.CMISQueryOptions.CMISQueryMode mode, org.apache.chemistry.opencmis.commons.enums.CmisVersion cmisVersion, String alternativeDictionary) -
getCMISDictionary
public org.alfresco.opencmis.dictionary.CMISDictionaryService getCMISDictionary(String alternativeDictionary, org.apache.chemistry.opencmis.commons.enums.CmisVersion cmisVersion) Gets the CMISDictionaryService, if an Alternative dictionary is specified it tries to get that. It will attempt to get the DEFAULT dictionary service if null is specified or it can't find a dictionary with the name of "alternativeDictionary"- Parameters:
alternativeDictionary- - can be null;- Returns:
- CMISDictionaryService
-
getAlfrescoModels
Returns the Alfresco models associated with the current dictionary.- Returns:
- the Alfresco models associated with the current dictionary.
-
getCMISQuery
public org.apache.lucene.search.Query getCMISQuery(org.alfresco.opencmis.search.CMISQueryOptions.CMISQueryMode mode, org.alfresco.util.Pair<org.alfresco.service.cmr.search.SearchParameters, Boolean> searchParametersAndFilter, org.apache.solr.request.SolrQueryRequest req, org.alfresco.repo.search.impl.querymodel.Query queryModelQuery, org.apache.chemistry.opencmis.commons.enums.CmisVersion cmisVersion, String alternativeDictionary) throws org.apache.lucene.queryparser.classic.ParseException- Throws:
org.apache.lucene.queryparser.classic.ParseException
-
getLuceneQueryBuilderContext
public org.alfresco.repo.search.impl.querymodel.impl.lucene.QueryBuilderContext<org.apache.lucene.search.Query,org.apache.lucene.search.Sort, getLuceneQueryBuilderContextorg.apache.lucene.queryparser.classic.ParseException> (org.alfresco.service.cmr.search.SearchParameters searchParameters, org.apache.solr.request.SolrQueryRequest req, String alternativeDictionary, org.alfresco.repo.search.impl.parsers.FTSQueryParser.RerankPhase rerankPhase) -
getLuceneQueryParser
public Solr4QueryParser getLuceneQueryParser(org.alfresco.service.cmr.search.SearchParameters searchParameters, org.apache.solr.request.SolrQueryRequest req, org.alfresco.repo.search.impl.parsers.FTSQueryParser.RerankPhase rerankPhase) -
getFTSQuery
public org.apache.lucene.search.Query getFTSQuery(org.alfresco.util.Pair<org.alfresco.service.cmr.search.SearchParameters, Boolean> searchParametersAndFilter, org.apache.solr.request.SolrQueryRequest req, org.alfresco.repo.search.impl.parsers.FTSQueryParser.RerankPhase rerankPhase) throws org.apache.lucene.queryparser.classic.ParseException- Throws:
org.apache.lucene.queryparser.classic.ParseException
-
mapProperty
public String mapProperty(String potentialProperty, AlfrescoSolrDataModel.FieldUse fieldUse, org.apache.solr.request.SolrQueryRequest req) -
mapStoredProperty
public String mapStoredProperty(String potentialProperty, org.apache.solr.request.SolrQueryRequest req) return the stored field associated to potentialProperty parameter -
isDerivedDateField
-
mapProperty
public String mapProperty(String potentialProperty, AlfrescoSolrDataModel.FieldUse fieldUse, org.apache.solr.request.SolrQueryRequest req, int position) -
mapNonPropertyFields
-
getTextField
- Parameters:
ending- String- Returns:
- SpecializedFieldType
-
setCMDefaultUri
public void setCMDefaultUri() -
destructuredDateTimePartFieldNamePrefix
Returns the prefix used for denoting a field which is meant to represent a constituent part of a date or datetime (e.g. year, month, second, minute).- Parameters:
sourceFieldName- the date/datetime source field name.- Returns:
- the prefix that can be used for denoting a date or datetime part
-