Skip to content

Commit c76113b

Browse files
authored
Refactor SearchSettings to reduce redundancy (#1356)
* Remove some searh properties that are not needed * Convert properties into constants * Move properties into enum * Replace facet class map with constant * Move sorts to constants * Set reasonable defaults for properties. Clean out removed and unneeded properties from search.properties files. Use getter methods for accessing some constants to avoid unexpected NPEs * Remove unused method * Set default value for fieldSet * Fix some direct references to _version_ solr field
1 parent 52ff924 commit c76113b

File tree

28 files changed

+345
-1663
lines changed

28 files changed

+345
-1663
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,3 @@
1-
search.query.maxLength=256
2-
search.query.defaultOperator=AND
3-
search.query.operators=AND,OR
4-
search.results.defaultPerPage=20
5-
search.results.defaultCollectionsPerPage=10
6-
search.results.defaultListResultsPerPage=6
7-
search.results.maxPerPage=50
8-
search.results.pagesToDisplay=10
9-
search.results.neighborItems=7
101
#Fields which are searchable via keyword searches
112
search.field.searchable=ID,DEFAULT_INDEX,TITLE_INDEX,CONTRIBUTOR_INDEX,SUBJECT_INDEX
12-
#Fields which are searchable as ranges
13-
search.field.rangeSearchable=DATE_CREATED,DATE_ADDED,DATE_UPDATED
14-
#Fields which contain dates
15-
search.field.dateSearchable=DATE_CREATED,DATE_ADDED,DATE_UPDATED
16-
search.facet.facetsPerGroup=5
17-
search.facet.maxFacetsPerGroup=15
18-
search.facet.fields=ANCESTOR_PATH,CONTENT_TYPE,DEPARTMENT,SUBJECT,LANGUAGE,CREATOR_TYPE
19-
search.facet.defaultCollectionBrowse=CONTENT_TYPE,DEPARTMENT,SUBJECT,LANGUAGE,CREATOR_TYPE
20-
search.facet.hierarchical=ANCESTOR_PATH,CONTENT_TYPE
21-
search.facet.displayOrder=ANCESTOR_PATH,CONTENT_TYPE,DEPARTMENT,LANGUAGE,SUBJECT,CREATOR_TYPE
22-
search.facet.subfieldDelimiter=,
23-
search.facet.tierDelimiter=\/
24-
search.sort.type.bestMatch=SCORE|desc,TITLE|asc,LABEL|asc
25-
search.sort.type.title=TITLE_LC|asc,ID|asc
26-
search.sort.type.dateUpdated=DATE_UPDATED|desc
27-
search.sort.type.dateCreated=DATE_CREATED|desc
28-
search.sort.type.dateAdded=DATE_ADDED|desc
29-
search.sort.type.collection=ANCESTOR_IDS|asc,IDENTIFIER_SORT|asc,DISPLAY_ORDER|asc,TITLE|asc,LABEL|asc
30-
search.sort.type.default=SCORE|desc,RESOURCE_TYPE_SORT|asc,IDENTIFIER_SORT|asc,TITLE|asc,LABEL|asc
31-
search.sort.order.normal=
32-
search.sort.order.reverse=reverse
33-
search.access.fields=FILE_ACCESS,SURROGATE_ACCESS,RECORD_ACCESS
34-
search.access.filterableFields=FILE_ACCESS,SURROGATE_ACCESS
35-
search.resource.fedora.file=info:fedora/cdr-model:Simple
36-
search.resource.fedora.folder=info:fedora/cdr-model:Container
37-
search.resource.fedora.collection=info:fedora/cdr-model:Collection
38-
search.resource.type.file=File
39-
search.resource.type.aggregate=Work
40-
search.resource.type.folder=Folder
41-
search.resource.type.collection=Collection
42-
search.resource.types=File,Folder,Collection
43-
search.resource.searchDefault=File,Collection
44-
search.resource.collectionDefault=Collection
45-
search.actions.SET_FACET_LIMIT=setFacetLimit
46-
search.actions.REMOVE_FACET_LIMIT=removeFacetLimit
47-
search.actions.NEXT_PAGE=nextPage
48-
search.actions.PREVIOUS_PAGE=previousPage
49-
search.actions.SET_START_ROW=setStartRow
50-
search.url.param.SEARCH_FIELDS=terms
51-
search.url.param.FACET_FIELDS=facets
52-
search.url.param.RANGE_FIELDS=ranges
53-
search.url.param.FACET_LIMIT_FIELDS=facetLimits
54-
search.url.param.BASE_FACET_LIMIT=facetLimit
55-
search.url.param.ACCESS_FILTER_TYPE=accessFilter
56-
search.url.param.START_ROW=start
57-
search.url.param.ROWS_PER_PAGE=rows
58-
search.url.param.SORT_TYPE=sort
59-
search.url.param.SORT_ORDER=sortOrder
60-
search.url.param.FACET_FIELDS_TO_RETRIEVE=facetSelect
61-
search.url.param.RESOURCE_TYPES=types
62-
search.url.param.SEARCH_TERM_OPERATOR=operator
63-
search.url.param.ACTIONS=action
64-
search.url.param.SEARCH_WITHIN=searchWithin
65-
search.url.param.ID=id
3+
search.facet.fields=ANCESTOR_PATH,CONTENT_TYPE,DEPARTMENT,SUBJECT,LANGUAGE,CREATOR_TYPE
Original file line numberDiff line numberDiff line change
@@ -1,174 +1,11 @@
1-
search.query.maxLength=256
2-
search.query.defaultOperator=OR
3-
search.query.operators=AND,OR
41
search.results.defaultPerPage=20
5-
search.results.defaultCollectionsPerPage=10
6-
search.results.defaultListResultsPerPage=5
72
search.results.maxPerPage=500
83
search.results.pagesToDisplay=10
94
search.results.neighborItems=7
105
search.results.maxBrowsePerPage=100
11-
12-
search.structure.depth.max=4
13-
search.structure.depth.default=1
14-
#Default result fields by result type
15-
search.results.fields.structure=ID,TITLE,RESOURCE_TYPE,ANCESTOR_PATH,CONTENT_MODEL,PARENT_COLLECTION
16-
search.results.fields.id=ID
17-
search.results.fields.identifier=ID,IDENTIFIER
18-
search.results.fields.brief=ID,TITLE,CREATOR,ABSTRACT,RESOURCE_TYPE,CONTENT_TYPE,PARENT_COLLECTION,DATE_ADDED
19-
search.results.fields.full=ID,TITLE,CREATOR,NAME,ABSTRACT,RESOURCE_TYPE,CONTENT_TYPE,PARENT_COLLECTION,DATASTREAM,DEPARTMENT,DATE_ADDED,DATE_CREATED,DATE_UPDATED,IDENTIFIER,LANGUAGE,SUBJECT,FILE_SIZE
20-
#Field names as they appear in request strings
21-
search.field.paramName.ID=id
22-
search.field.paramName.ANCESTOR_PATH=path
23-
search.field.paramName.ANCESTOR_IDS=ancestorIds
24-
search.field.paramName.RESOURCE_TYPE=type
25-
search.field.paramName.DISPLAY_ORDER=displayOrder
26-
search.field.paramName.CONTENT_TYPE=format
27-
search.field.paramName.DATASTREAM=datastream
28-
search.field.paramName.PARENT_COLLECTION=collection
29-
search.field.paramName.TITLE=title
30-
search.field.paramName.TITLE_LC=title_lc
31-
search.field.paramName.LABEL=label
32-
search.field.paramName.ABSTRACT=abstract
33-
search.field.paramName.COLLECTION_ID=collectionId
34-
search.field.paramName.KEYWORD=keyword
35-
search.field.paramName.SUBJECT=subject
36-
search.field.paramName.GENRE=genre
37-
search.field.paramName.LANGUAGE=language
38-
search.field.paramName.CREATOR=creator
39-
search.field.paramName.CREATOR_SORT=creatorSort
40-
search.field.paramName.NAME=name
41-
search.field.paramName.IDENTIFIER=identifier
42-
search.field.paramName.DEPARTMENT=dept
43-
search.field.paramName.DEPARTMENT_LC=dept
44-
search.field.paramName.DATE_CREATED=created
45-
search.field.paramName.DATE_ADDED=added
46-
search.field.paramName.DATE_UPDATED=updated
47-
search.field.paramName.TIMESTAMP=timestamp
48-
search.field.paramName.FILESIZE=filesize
49-
search.field.paramName.DEFAULT_INDEX=anywhere
50-
search.field.paramName.TITLE_INDEX=titleIndex
51-
search.field.paramName.CONTRIBUTOR_INDEX=contributorIndex
52-
search.field.paramName.SUBJECT_INDEX=subjectIndex
53-
search.field.paramName.CONTENT_MODEL=model
54-
search.field.paramName.SCOPE=scope
55-
search.field.paramName.ROLE_GROUP=role
56-
search.field.paramName.STATUS=status
57-
search.field.paramName.CONTENT_STATUS=contentStatus
58-
#Dynamic fields
59-
search.field.paramName.RLA_SITE_CODE=rla.siteCode
60-
search.field.paramName.RLA_CATALOG_NUMBER=rla.catalogNumber
61-
search.field.paramName.RLA_CONTEXT_1=rla.context1
62-
#Fields which are searchable via keyword searches
636
search.field.searchable=ID,DEFAULT_INDEX,TITLE_INDEX,CONTRIBUTOR_INDEX,SUBJECT_INDEX,IDENTIFIER\
647
,RLA_SITE_CODE,RLA_CATALOG_NUMBER,RLA_CONTEXT_1
65-
#Fields which are searchable as ranges
66-
search.field.rangeSearchable=DATE_CREATED,DATE_ADDED,DATE_UPDATED
67-
#Fields which contain dates
68-
search.field.dateSearchable=DATE_CREATED,DATE_ADDED,DATE_UPDATED
69-
#Display names for fields for use in the UI
70-
search.field.display.ID=ID
71-
search.field.display.ANCESTOR_PATH=Folders
72-
search.field.display.ANCESTOR_IDS=ancestorIds
73-
search.field.display.RESOURCE_TYPE=Resource Type
74-
search.field.display.DISPLAY_ORDER=displayOrder
75-
search.field.display.CONTENT_TYPE=Format
76-
search.field.display.DATASTREAM=Datastream
77-
search.field.display.PARENT_COLLECTION=Collection
78-
search.field.display.TITLE=Title
79-
search.field.display.ABSTRACT=Abstract
80-
search.field.display.COLLECTION_ID=collectionId
81-
search.field.display.KEYWORD=Keyword
82-
search.field.display.SUBJECT=Subject
83-
search.field.display.LANGUAGE=Language
84-
search.field.display.CREATOR=Creator
85-
search.field.display.NAME=Contributor
86-
search.field.display.DEPARTMENT=Department
87-
search.field.display.DEPARTMENT_LC=Department
88-
search.field.display.DATE_CREATED=Date Created
89-
search.field.display.DATE_ADDED=Date Deposited
90-
search.field.display.DATE_UPDATED=Last Updated
91-
search.field.display.TIMESTAMP=Timestamp
92-
search.field.display.FILESIZE=Filesize
93-
search.field.display.DEFAULT_INDEX=Anywhere
94-
search.field.display.TITLE_INDEX=Title
95-
search.field.display.CONTRIBUTOR_INDEX=Contributor
96-
search.field.display.SUBJECT_INDEX=Subject
97-
search.field.display.SCOPE=Scope
98-
search.field.display.CONTENT_MODEL=Content Model
99-
search.field.display.ROLE_GROUP=Roles
100-
search.field.display.STATUS=Access Status
101-
search.field.display.CONTENT_STATUS=Content Status
102-
1038
#Set to one higher than you want to display as the last value indicates whether the UI should show a "show more" link
104-
search.facet.facetsPerGroup=6
105-
search.facet.expandedFacetsPerGroup=20
106-
search.facet.maxFacetsPerGroup=50
107-
search.facet.maxChildCounts=10000
108-
search.facet.countPageSize=100
1099
search.facet.fields=ANCESTOR_PATH,CONTENT_TYPE,DEPARTMENT,DEPARTMENT_LC,SUBJECT,GENRE,LANGUAGE,PARENT_COLLECTION,CONTENT_MODEL,RESOURCE_TYPE,STATUS,CONTENT_STATUS,SCOPE,ROLE_GROUP
11010
search.facet.defaultSearch=PARENT_COLLECTION,ANCESTOR_PATH,CONTENT_TYPE,DEPARTMENT,LANGUAGE,SUBJECT
111-
search.facet.class.ANCESTOR_PATH=CutoffFacetImpl
112-
search.facet.class.CONTENT_TYPE=MultivaluedHierarchicalFacet
113-
search.facet.class.DEPARTMENT=CaseInsensitiveFacet
114-
search.facet.class.DEPARTMENT_LC=CaseInsensitiveFacet
115-
search.facet.class.ROLE_GROUP=RoleGroupFacet
116-
search.facet.subfieldDelimiter=,
117-
search.facet.tierDelimiter=\/
118-
search.sort.type.bestMatch=SCORE|desc,TITLE|asc,LABEL|asc
119-
search.sort.type.title=TITLE_LC|asc,ID|asc
120-
search.sort.type.dateUpdated=DATE_UPDATED|desc
121-
search.sort.type.dateCreated=DATE_CREATED|desc
122-
search.sort.type.dateAdded=DATE_ADDED|desc
123-
search.sort.type.collection=ANCESTOR_IDS|asc,IDENTIFIER_SORT|asc,DISPLAY_ORDER|asc,TITLE|asc,LABEL|asc
124-
search.sort.type.default=SCORE|desc,RESOURCE_TYPE_SORT|asc,IDENTIFIER_SORT|asc,TITLE|asc,LABEL|asc
125-
search.sort.type.creator=CREATOR_SORT|asc
126-
search.sort.type.resourceType=RESOURCE_TYPE_SORT|asc
127-
search.sort.name.bestMatch,normal=Best Match
128-
search.sort.name.title,reverse=Title Z-A
129-
search.sort.name.title,normal=Title A-Z
130-
search.sort.name.dateUpdated,normal=Date Updated (newest)
131-
search.sort.name.dateUpdated,reverse=Date Updated (oldest)
132-
search.sort.name.dateCreated,normal=Date Created (newest)
133-
search.sort.name.dateCreated,reverse=Date Created (oldest)
134-
search.sort.name.dateAdded,normal=Date Deposited (newest)
135-
search.sort.name.dateAdded,reverse=Date Deposited (oldest)
136-
search.sort.name.collection,normal=Collection
137-
search.sort.name.collection,reverse=Collection (reversed)
138-
search.sort.name.default,normal=Default
139-
search.sort.displayOrder=default,normal|title,normal|title,reverse|\
140-
dateCreated,normal|dateCreated,reverse|dateAdded,normal|dateAdded,reverse
141-
search.sort.order.normal=
142-
search.sort.order.reverse=reverse
143-
search.access.allowPatrons=true
144-
search.access.fields=ADMIN_GROUP,READ_GROUP,ROLE_GROUP
145-
search.access.filterableFields=ROLE_GROUP
146-
search.resource.fedora.file=info:fedora/cdr-model:Simple
147-
search.resource.fedora.folder=info:fedora/cdr-model:Container
148-
search.resource.fedora.collection=info:fedora/cdr-model:Collection
149-
search.resource.type.file=File
150-
search.resource.type.aggregate=Work
151-
search.resource.type.folder=Folder
152-
search.resource.type.collection=Collection
153-
search.resource.type.adminUnit=AdminUnit
154-
search.resource.types=File,Work,Folder,Collection,AdminUnit
155-
search.resource.searchDefault=File,Work,Folder,Collection,AdminUnit
156-
search.resource.collectionDefault=Collection
157-
search.actions.SET_FACET_LIMIT=setFacetLimit
158-
search.actions.REMOVE_FACET_LIMIT=removeFacetLimit
159-
search.actions.NEXT_PAGE=nextPage
160-
search.actions.PREVIOUS_PAGE=previousPage
161-
search.actions.SET_START_ROW=setStartRow
162-
search.url.param.FACET_LIMIT_FIELDS=facetLimits
163-
search.url.param.BASE_FACET_LIMIT=facetLimit
164-
search.url.param.ACCESS_FILTER_TYPE=accessFilter
165-
search.url.param.START_ROW=start
166-
search.url.param.ROWS_PER_PAGE=rows
167-
search.url.param.SORT_TYPE=sort
168-
search.url.param.FACET_FIELDS_TO_RETRIEVE=facetSelect
169-
search.url.param.RESOURCE_TYPES=types
170-
search.url.param.SEARCH_TERM_OPERATOR=operator
171-
search.url.param.SEARCH_WITHIN=searchWithin
172-
search.url.param.ROLLUP=rollup
173-
search.url.param.FIELDSET=fieldSet
174-
search.url.param.FIELDS=fields
11+
search.access.allowPatrons=true

model-api/src/main/java/edu/unc/lib/boxc/model/api/ResourceType.java

+8
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,14 @@ public boolean equals(String name) {
6969
return this.name().equals(name);
7070
}
7171

72+
/**
73+
* @param name
74+
* @return Name of this resource type matches the provided value
75+
*/
76+
public boolean nameEquals(String name) {
77+
return this.name().equals(name);
78+
}
79+
7280
public static ResourceType getResourceTypeByUri(String uri) {
7381
for (ResourceType type : values()) {
7482
if (type.uri.equals(uri)) {

0 commit comments

Comments
 (0)