Package org.alfresco.solr
Class AlfrescoSolrDataModel
- java.lang.Object
-
- org.alfresco.solr.AlfrescoSolrDataModel
-
- All Implemented Interfaces:
org.alfresco.repo.search.adaptor.lucene.QueryConstants
public class AlfrescoSolrDataModel extends Object implements org.alfresco.repo.search.adaptor.lucene.QueryConstants
- Author:
- Andy
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAlfrescoSolrDataModel.ContentFieldTypestatic classAlfrescoSolrDataModel.FieldInstancestatic classAlfrescoSolrDataModel.FieldUsestatic classAlfrescoSolrDataModel.IndexedFieldstatic classAlfrescoSolrDataModel.TenantAclIdDbId
-
Field Summary
Fields Modifier and Type Field Description static StringCONTENT_M_LOCALE_PREFIXstatic StringCONTENT_S_LOCALE_PREFIXstatic StringDEFAULT_TENANTprotected static org.slf4j.Loggerlogstatic StringSHARED_PROPERTIES-
Fields inherited from interface org.alfresco.repo.search.adaptor.lucene.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_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 Constructor Description AlfrescoSolrDataModel()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterInitModels()voidclose()static AlfrescoSolrDataModel.TenantAclIdDbIddecodeNodeDocumentId(String id)static StringgetAclChangeSetDocumentId(Long aclChangeSetId)static StringgetAclDocumentId(String tenant, Long aclId)List<org.alfresco.solr.client.AlfrescoModel>getAlfrescoModels()StringgetAlfrescoPropertyFromSchemaField(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 PropertiesgetCommonConfig()org.alfresco.repo.dictionary.DictionaryComponentgetDictionaryService(String alternativeDictionary)Gets a DictionaryService, if an Alternative dictionary is specified it tries to get that.StringgetFieldForNonText(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)AlfrescoSolrDataModel.IndexedFieldgetIndexedFieldForContentPropertyMetadata(org.alfresco.service.namespace.QName propertyQName, AlfrescoSolrDataModel.ContentFieldType type)AlfrescoSolrDataModel.IndexedFieldgetIndexedFieldNamesForProperty(org.alfresco.service.namespace.QName propertyQName)Get all the field names into which we must copy the source datastatic AlfrescoSolrDataModelgetInstance()static org.apache.lucene.index.TermgetLongTerm(String field, long longValue)static org.apache.lucene.index.TermgetLongTerm(String field, String stringValue)org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext<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)Solr4QueryParsergetLuceneQueryParser(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.M2ModelgetM2Model(org.alfresco.service.namespace.QName modelQName)Map<String,Set<String>>getModelErrors()org.alfresco.repo.dictionary.NamespaceDAOgetNamespaceDAO()static StringgetNodeDocumentId(String tenant, Long aclId, Long dbid)Returns the Solr 4 idorg.alfresco.service.cmr.dictionary.PropertyDefinitiongetPropertyDefinition(org.alfresco.service.namespace.QName propertyQName)AlfrescoSolrDataModel.IndexedFieldgetQueryableFields(org.alfresco.service.namespace.QName propertyQName, AlfrescoSolrDataModel.ContentFieldType type, AlfrescoSolrDataModel.FieldUse fieldUse)ClassLoadergetResourceClassLoader()static FilegetResourceDirectory()static StringgetTenantId(String tenant)AlfrescoSolrDataModel.ContentFieldTypegetTextField(String ending)static StringgetTransactionDocumentId(Long txId)StringmapNonPropertyFields(String queryField)StringmapProperty(String potentialProperty, AlfrescoSolrDataModel.FieldUse fieldUse, org.apache.solr.request.SolrQueryRequest req)StringmapProperty(String potentialProperty, AlfrescoSolrDataModel.FieldUse fieldUse, org.apache.solr.request.SolrQueryRequest req, int position)static LongparseAclChangeSetId(String aclChangeSetDocumentId)org.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 transactionDocumentId)booleanputModel(org.alfresco.repo.dictionary.M2Model model)booleanremoveModel(org.alfresco.service.namespace.QName modelQName)voidsetCMDefaultUri()
-
-
-
Field Detail
-
SHARED_PROPERTIES
public static final String SHARED_PROPERTIES
- See Also:
- Constant Field Values
-
CONTENT_S_LOCALE_PREFIX
public static final String CONTENT_S_LOCALE_PREFIX
- See Also:
- Constant Field Values
-
CONTENT_M_LOCALE_PREFIX
public static final String CONTENT_M_LOCALE_PREFIX
- See Also:
- Constant Field Values
-
log
protected static final org.slf4j.Logger log
-
DEFAULT_TENANT
public static final String DEFAULT_TENANT
- See Also:
- Constant Field Values
-
-
Method Detail
-
close
public void close()
-
getAclDocumentId
public static String getAclDocumentId(String tenant, Long aclId)
- Parameters:
tenant-aclId-- Returns:
: :A-
-
getAclChangeSetDocumentId
public static String getAclChangeSetDocumentId(Long aclChangeSetId)
- Parameters:
aclChangeSetId-- Returns:
:CHANGE_SET:
-
getNodeDocumentId
public static String getNodeDocumentId(String tenant, Long aclId, Long dbid)
Returns the Solr 4 id- Parameters:
tenant-aclId-dbid-- Returns:
! !
-
decodeNodeDocumentId
public static AlfrescoSolrDataModel.TenantAclIdDbId decodeNodeDocumentId(String id)
-
getTransactionDocumentId
public static String getTransactionDocumentId(Long txId)
- Parameters:
txId-- Returns:
:CHANGE_SET:
-
getLongTerm
public static org.apache.lucene.index.Term getLongTerm(String field, long longValue)
-
getLongTerm
public static org.apache.lucene.index.Term getLongTerm(String field, String stringValue)
-
getAlfrescoPropertyFromSchemaField
public String getAlfrescoPropertyFromSchemaField(String schemaField)
-
getInstance
public static AlfrescoSolrDataModel getInstance()
-
getNamespaceDAO
public org.alfresco.repo.dictionary.NamespaceDAO getNamespaceDAO()
-
getCommonConfig
public static Properties getCommonConfig()
-
getResourceClassLoader
public ClassLoader getResourceClassLoader()
- Returns:
- ClassLoader
-
getResourceDirectory
public static File 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
-
getIndexedFieldForContentPropertyMetadata
public AlfrescoSolrDataModel.IndexedField getIndexedFieldForContentPropertyMetadata(org.alfresco.service.namespace.QName propertyQName, AlfrescoSolrDataModel.ContentFieldType type)
-
getQueryableFields
public AlfrescoSolrDataModel.IndexedField getQueryableFields(org.alfresco.service.namespace.QName propertyQName, AlfrescoSolrDataModel.ContentFieldType type, AlfrescoSolrDataModel.FieldUse fieldUse)
-
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
-
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)
- Parameters:
propertyQName- QName- Returns:
- PropertyDefinition
-
putModel
public boolean putModel(org.alfresco.repo.dictionary.M2Model model)
- Parameters:
model- M2Model- Returns:
- boolean
-
removeModel
public boolean removeModel(org.alfresco.service.namespace.QName modelQName)
-
getM2Model
public org.alfresco.repo.dictionary.M2Model getM2Model(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
public List<org.alfresco.solr.client.AlfrescoModel> getAlfrescoModels()
- Returns:
- List
-
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- Parameters:
mode- CMISQueryModesearchParametersAndFilter- Pairreq- SolrQueryRequestqueryModelQuery- QuerycmisVersion- CmisVersionalternativeDictionary- String- Returns:
- Query
- Throws:
org.apache.lucene.queryparser.classic.ParseException
-
getLuceneQueryBuilderContext
public org.alfresco.repo.search.impl.querymodel.impl.lucene.LuceneQueryBuilderContext<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
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
- Parameters:
searchParametersAndFilter- Pairreq- SolrQueryRequest- Returns:
- Query
- Throws:
org.apache.lucene.queryparser.classic.ParseException
-
mapProperty
public String mapProperty(String potentialProperty, AlfrescoSolrDataModel.FieldUse fieldUse, org.apache.solr.request.SolrQueryRequest req)
- Parameters:
potentialProperty- StringfieldUse- FieldUsereq- SolrQueryRequest- Returns:
- String
-
mapProperty
public String mapProperty(String potentialProperty, AlfrescoSolrDataModel.FieldUse fieldUse, org.apache.solr.request.SolrQueryRequest req, int position)
-
mapNonPropertyFields
public String mapNonPropertyFields(String queryField)
- Parameters:
queryField- String- Returns:
- String
-
getTextField
public AlfrescoSolrDataModel.ContentFieldType getTextField(String ending)
- Parameters:
ending- String- Returns:
- ContentFieldType
-
setCMDefaultUri
public void setCMDefaultUri()
-
-