001/*
002 *  Copyright 2015 Anyware Services
003 *
004 *  Licensed under the Apache License, Version 2.0 (the "License");
005 *  you may not use this file except in compliance with the License.
006 *  You may obtain a copy of the License at
007 *
008 *      http://www.apache.org/licenses/LICENSE-2.0
009 *
010 *  Unless required by applicable law or agreed to in writing, software
011 *  distributed under the License is distributed on an "AS IS" BASIS,
012 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *  See the License for the specific language governing permissions and
014 *  limitations under the License.
015 */
016package org.ametys.cms.content.indexing.solr;
017
018import org.ametys.cms.contenttype.ContentType;
019import org.ametys.plugins.repository.AmetysObject;
020
021/**
022 * Constants for Solr field names related to indexation.
023 */
024public interface SolrFieldNames
025{
026    //// CMS
027    
028    /** Separator before language suffix */
029    public static final String LANGUAGE_SEPARATOR = "_";
030    /** Stemmed operator */
031    public static final String STEMMED_OPERATOR = "_stemmed";
032    /** Exact word search operator */
033    public static final String EXACT_WS_OPERATOR = "_s_ws";
034    
035    
036    /** Document type. */
037    public static final String DOCUMENT_TYPE = "_documentType";
038    
039    /** Repeater entry position. */
040    public static final String REPEATER_ENTRY_POSITION = "_position";
041    
042    /** Document type for a content */
043    public static final String TYPE_CONTENT = "content";
044    /** Document type for a content repeater */
045    public static final String TYPE_REPEATER = "repeater";
046    /** Document type for a resource */
047    public static final String TYPE_RESOURCE = "resource";
048    /** Document type for a resource of a content (as a content attachment) */
049    public static final String TYPE_CONTENT_ATTACHMENT_RESOURCE = "contentAttachmentResource";
050    /** Document type for a resource of a content (as an attribute of content) */
051    public static final String TYPE_CONTENT_ATTRIBUTE_RESOURCE = "contentAttributeResource";
052    /** The id of the content for an attachment */
053    public static final String ATTACHMENT_CONTENT_ID = "attachedContentId";
054    /** Document type for a workflow entry. */
055    public static final String TYPE_WF_ENTRY = "workflowEntry";
056    /** Document type for a workflow step. */
057    public static final String TYPE_WF_STEP = "workflowStep";
058    
059    /** Id field name. */
060    public static final String ID = "id";
061    /** Id field name (with suffix). */
062    public static final String ID_DV = ID + "_dv";
063    /** Title field name. */
064    public static final String TITLE = "title";
065    /** Page title for sorting field name. */
066    public static final String TITLE_SORT = "title_sort";
067    
068    /** Full-text field name with general text indexation. */
069    public static final String SYSTEM_FULL = "systemFull";
070    /** Full-text field name with general text indexation. */
071    public static final String FULL = "full";
072    /** Last modified date field name. */
073    public static final String LAST_MODIFIED = "lastModified";
074    /** Creation date field name. */
075    public static final String CREATION_DATE = "creationDate";
076    
077    /** Validated comments of a content. */
078    public static final String CONTENT_COMMENTS_VALIDATED = "commentsValidated";
079    /** Non-validated comments of a content. */
080    public static final String CONTENT_COMMENTS_NONVALIDATED = "commentsNonValidated";
081    
082    /** Content name field name. */
083    public static final String CONTENT_NAME = "contentName";
084    /** Content types field name. */
085    public static final String CONTENT_TYPES = "contentTypes";
086    /** All content types field name. */
087    public static final String ALL_CONTENT_TYPES = "allContentTypes";
088    /** Mixin types field name. */
089    public static final String MIXIN_TYPES = "mixinTypes";
090    /** All mixin types field name. */
091    public static final String ALL_MIXIN_TYPES = "allMixinTypes";
092//    /** The content types and mixins of a content. */
093//    public static final String CONTENT_TYPE_OR_MIXIN = "contentTypeOrMixin";
094    /** Pseudo content types field name. */
095    public static final String PSEUDO_CONTENT_TYPES = "pseudoContentTypes";
096    /** Pseudo content type value for a resource */
097    public static final String PSEUDO_CONTENT_TYPE_VALUE_RESOURCE = "resource";
098    /** Content language field name. */
099    public static final String CONTENT_LANGUAGE = "contentLanguage";
100    /** Content creator field name. */
101    public static final String CONTENT_CREATOR = "creator";
102    /** Content last contributor field name. */
103    public static final String CONTENT_LAST_CONTRIBUTOR = "contributor";
104    /** Content first validator field name */
105    public static final String CONTENT_FIRST_VALIDATOR = "firstValidator";
106    /** Content last validator field name. */
107    public static final String CONTENT_LAST_VALIDATOR = "lastValidator";
108    /** Content last major validator field name */
109    public static final String CONTENT_LAST_MAJOR_VALIDATOR = "lastMajorValidator";
110    /** Tags field name. */
111    public static final String TAGS = "tags";
112    /** All tags (including parent ones). */
113    public static final String ALL_TAGS = "allTags";
114    /** The ids of the outgoing references to resources or folders of resources (as metadata, in docbooks, attachments of this content...) */
115    public static final String CONTENT_OUTGOING_REFEERENCES_RESOURCE_IDS = "content-outgoingResourceRefIds";
116    /** The ids of visible content attachments */
117    public static final String CONTENT_VISIBLE_ATTACHMENT_RESOURCE_IDS = "content-visibleAttachmentIds";
118    
119    /** Content: embedded mode. */
120    /** Content titles field name. */
121    public static final String CONTENT_TITLES = "content-titles";
122    /** Content languages field. */
123    public static final String CONTENT_LANGUAGES = "content-languages";
124    /** Sub-content field name. */
125    public static final String SUB_CONTENT = "subContent";
126    
127    /** Resource excerpt field name. */
128    public static final String EXCERPT = "excerpt";
129    /** The file name for resources. */
130    public static final String FILENAME = "filename";
131    /** The resource path */
132    public static final String PATH = "path";
133    /** The mime type for resources. */
134    public static final String MIME_TYPES = "mimeTypes";
135    /** The length of a resource. */
136    public static final String LENGTH = "length";
137    /** The dummy "content type" of a resource. */
138    public static final String CONTENT_TYPE_RESOURCE = "resource";
139    /** The resource root ID */
140    public static final String RESOURCE_ROOT_ID = "resourceRootId";
141    /** The ids of the ancestors of the resource (i.e. ids of the parent resource collections) */
142    public static final String RESOURCE_ANCESTOR_IDS = "resource-ancestorIds";
143    /** The ids of the ancestors of the resource and the resource itself */
144    public static final String RESOURCE_ANCESTOR_AND_SELF_IDS = "resource-ancestorAndSelfIds";
145    /** The resource author */
146    public static final String RESOURCE_CREATOR = "resourceCreator";
147    /** The resource date */
148    public static final String RESOURCE_DATE = "resourceDate";
149    /** Last modified date field name. */
150    public static final String RESOURCE_LAST_MODIFIED = "last-modified";
151    
152    //// Date facet
153    // TODO Use docValues ?
154    /** Date facet field. */
155    public static final String DATES_FACET = "dates-facet";
156    /** Date sorting */
157    public static final String DATE_FOR_SORTING = "date-for-sorting";
158    
159    //// Dublin Core metadatas
160    /** Dublin Core title. */
161    public static final String DC_TITLE = "DCTitle";
162    /** Dublin Core creator. */
163    public static final String DC_CREATOR = "DCCreator";
164    /** Dublin Core subject. */
165    public static final String DC_SUBJECT = "DCSubject";
166    /** Dublin Core description. */
167    public static final String DC_DESCRIPTION = "DCDescription";
168    /** Dublin Core publisher. */
169    public static final String DC_PUBLISHER = "DCPublisher";
170    /** Dublin Core contributor. */
171    public static final String DC_CONTRIBUTOR = "DCContributor";
172    /** Dublin Core date. */
173    public static final String DC_DATE = "DCDate";
174    /** Dublin Core type. */
175    public static final String DC_TYPE = "DCType";
176    /** Dublin Core format. */
177    public static final String DC_FORMAT = "DCFormat";
178    /** Dublin Core identifier. */
179    public static final String DC_IDENTIFIER = "DCIdentifier";
180    /** Dublin Core source. */
181    public static final String DC_SOURCE = "DCSource";
182    /** Dublin Core language. */
183    public static final String DC_LANGUAGE = "DCLanguage";
184    /** Dublin Core relation. */
185    public static final String DC_RELATION = "DCRelation";
186    /** Dublin Core coverage. */
187    public static final String DC_COVERAGE = "DCCoverage";
188    /** Dublin Core rights. */
189    public static final String DC_RIGHTS = "DCRights";
190    
191    /** Group of MIME-Type of the resource */
192    public static final String RESOURCE_MIME_TYPE_GROUP = "resource-mimeTypeGroup";
193    
194    //// Workflow fields.
195    /** Constant for workflow reference field (on the AmetysObject itself). */
196    public static final String WORKFLOW_REF = "workflowRef";
197    /** Constant for workflow reference field with suffix (on the AmetysObject itself). */
198    public static final String WORKFLOW_REF_DV = "workflowRef_s_dv";
199    /** Constant for workflow name field. */
200    public static final String WORKFLOW_NAME = "wfName";
201    /** Constant for workflow entry state field. */
202    public static final String WORKFLOW_ENTRY_STATE = "wfEntryState";
203    /** Constant for workflow history steps field. */
204    public static final String WORKFLOW_HISTORY_STEPS = "wfHistorySteps";
205    /** Constant for workflow history steps field (with suffix). */
206    public static final String WORKFLOW_HISTORY_STEPS_DV = WORKFLOW_HISTORY_STEPS + "_s_dv";
207    /** Constant for workflow current steps field. */
208    public static final String WORKFLOW_CURRENT_STEPS = "wfCurrentSteps";
209    /** Constant for workflow current steps field (with suffix). */
210    public static final String WORKFLOW_CURRENT_STEPS_DV = WORKFLOW_CURRENT_STEPS + "_s_dv";
211    /** Constant for workflow step ID field. */
212    public static final String WORKFLOW_STEP_ID = "wfStepId";
213    /** Constant for workflow step action ID field. */
214    public static final String WORKFLOW_STEP_ACTIONID = "wfStepActionId";
215    /** Constant for workflow step owner field. */
216    public static final String WORKFLOW_STEP_OWNER = "wfStepOwner";
217    /** Constant for workflow step caller field. */
218    public static final String WORKFLOW_STEP_CALLER = "wfStepCaller";
219    /** Constant for workflow step start date field. */
220    public static final String WORKFLOW_STEP_STARTDATE = "wfStepStartDate";
221    /** Constant for workflow step due date field. */
222    public static final String WORKFLOW_STEP_DUEDATE = "wfStepDueDate";
223    /** Constant for workflow step finish date field. */
224    public static final String WORKFLOW_STEP_FINISHDATE = "wfStepFinishDate";
225    /** Constant for workflow step status field. */
226    public static final String WORKFLOW_STEP_STATUS = "wfStepStatus";
227    
228    //// ACL fields.
229    /** Constant for indicating if it is an {@link AmetysObject}. */
230    public static final String IS_AMETYS_OBJECT = "ametysObject";
231    /** Constant for initial value of read-access for anonymous user */
232    public static final String ACL_INIT_VALUE_ANONYMOUS = "__initValueAclAnonymous";
233    /** Constant for initial value of read-access for any connected user */
234    public static final String ACL_INIT_VALUE_ANYCONNECTED = "__initValueAclAnyConnectedUser";
235    /** Constant for initial value of read-access for allowed users */
236    public static final String ACL_INIT_VALUE_ALLOWED_USERS = "__initValueAclAllowedUsers";
237    /** Constant for initial value of read-access for denied users */
238    public static final String ACL_INIT_VALUE_DENIED_USERS = "__initValueAclDeniedUsers";
239    /** Constant for initial value of read-access for allowed groups */
240    public static final String ACL_INIT_VALUE_ALLOWED_GROUPS = "__initValueAclAllowedGroups";
241    /** Constant for initial value of read-access for denied groups */
242    public static final String ACL_INIT_VALUE_DENIED_GROUPS = "__initValueAclDeniedGroups";
243    
244    /** Constant for parents of the content, i.e. all the ascending hierarchy (parent, grandparent, etc.). See {@link ContentType#getParentAttributeDefinition()}  */
245    public static final String SIMPLE_CONTENT_PARENTS = "parents";
246
247}