File tree 5 files changed +41
-36
lines changed
5 files changed +41
-36
lines changed Original file line number Diff line number Diff line change @@ -161,10 +161,10 @@ def _parse_custom_facets(self):
161
161
{
162
162
'form_name' : custom_facet ['facet_field' ],
163
163
'facet_field' : (
164
- f"{ custom_facet ['facet_field' ][:- 3 ]} .keyword " ),
164
+ f"{ custom_facet ['facet_field' ][:- 3 ]} .raw " ),
165
165
'display_name' : custom_facet ['label' ],
166
166
'filter_field' : (
167
- f"{ custom_facet ['facet_field' ][:- 3 ]} .keyword " ),
167
+ f"{ custom_facet ['facet_field' ][:- 3 ]} .raw " ),
168
168
'sort_by' : custom_facet ['sort_by' ],
169
169
'faceting_allowed' : True
170
170
}
@@ -310,7 +310,7 @@ def get_mosaic(self):
310
310
repositories .append (repository ['name' ])
311
311
312
312
if self .index == 'es' :
313
- sort = ("sort_title.keyword " , "asc" )
313
+ sort = ("sort_title.raw " , "asc" )
314
314
else :
315
315
sort = ("sort_title" , "asc" )
316
316
Original file line number Diff line number Diff line change 36
36
FacetDisplay = namedtuple (
37
37
'FacetDisplay' , 'facet, display' )
38
38
39
- # solr schema fields that have a `_ss` varient for facets
39
+ # index schema fields that are of type=keyword so we can get
40
+ # facets directly without needing an _ss or .raw suffix
41
+ UCLDC_SCHEMA_TERM_FIELDS = [
42
+ 'calisphere-id' ,
43
+ 'id' ,
44
+ 'campus_name' ,
45
+ 'campus_data' ,
46
+ 'campus_url' ,
47
+ 'campus_id' ,
48
+ 'collection_name' ,
49
+ 'collection_data' ,
50
+ 'collection_url' ,
51
+ 'collection_id' ,
52
+ 'sort_collection_data' ,
53
+ 'repository_name' ,
54
+ 'repository_data' ,
55
+ 'repository_url' ,
56
+ 'repository_id' ,
57
+ 'rights_uri' ,
58
+ 'url_item' ,
59
+ 'fetcher_type' ,
60
+ 'mapper_type'
61
+ ]
62
+
63
+ # index schema fields that are of type=text and thus need a
64
+ # solr _ss or opensearch .raw suffix to get facets
40
65
UCLDC_SCHEMA_FACETS = [
41
66
FacetDisplay ("title" , "title" ),
42
67
FacetDisplay ("alternative_title" , "alternative title" ),
70
95
for fd in UCLDC_SCHEMA_FACETS
71
96
]
72
97
UCLDC_ES_SCHEMA_FACETS = [
73
- FacetDisplayField (fd .facet , fd .display , f"{ fd .facet } .keyword " )
98
+ FacetDisplayField (fd .facet , fd .display , f"{ fd .facet } .raw " )
74
99
for fd in UCLDC_SCHEMA_FACETS
75
100
]
76
101
Original file line number Diff line number Diff line change 1
1
""" logic for cache / retry for es (opensearch) and JSON from registry
2
2
"""
3
3
4
+ from calisphere .constants import UCLDC_SCHEMA_TERM_FIELDS
4
5
from future import standard_library
5
6
from django .core .cache import cache
6
7
from django .conf import settings
@@ -166,9 +167,9 @@ def es_mlt(item_id):
166
167
"query" : {
167
168
"more_like_this" : {
168
169
"fields" : [
169
- "title.keyword " ,
170
+ "title.raw " ,
170
171
"collection_data" ,
171
- "subject.keyword " ,
172
+ "subject.raw " ,
172
173
],
173
174
"like" : [
174
175
{"_id" : item_id }
@@ -241,33 +242,12 @@ def query_encode(query_string: str = None,
241
242
es_params ['query' ] = es_filters [0 ]
242
243
243
244
if facets :
244
- keyword_fields = [
245
- 'calisphere-id' ,
246
- 'id' ,
247
- 'campus_name' ,
248
- 'campus_data' ,
249
- 'campus_url' ,
250
- 'campus_id' ,
251
- 'collection_name' ,
252
- 'collection_data' ,
253
- 'collection_url' ,
254
- 'collection_id' ,
255
- 'sort_collection_data' ,
256
- 'repository_name' ,
257
- 'repository_data' ,
258
- 'repository_url' ,
259
- 'repository_id' ,
260
- 'rights_uri' ,
261
- 'url_item' ,
262
- 'fetcher_type' ,
263
- 'mapper_type'
264
- ]
265
245
aggs = {}
266
246
for facet in facets :
267
- if facet in keyword_fields or facet [- 8 :] == '.keyword ' :
247
+ if facet in UCLDC_SCHEMA_TERM_FIELDS or facet [- 4 :] == '.raw ' :
268
248
field = facet
269
249
else :
270
- field = f'{ facet } .keyword '
250
+ field = f'{ facet } .raw '
271
251
272
252
aggs [facet ] = {
273
253
"terms" : {
Original file line number Diff line number Diff line change @@ -170,7 +170,7 @@ class ESRelationFF(ESFacetFilterType):
170
170
form_name = 'relation_ss'
171
171
facet_field = 'relation'
172
172
display_name = 'Relation'
173
- filter_field = 'relation.keyword '
173
+ filter_field = 'relation.raw '
174
174
sort_by = 'value'
175
175
faceting_allowed = False
176
176
@@ -186,7 +186,7 @@ class ESTypeFF(ESFacetFilterType):
186
186
form_name = 'type_ss'
187
187
facet_field = 'type'
188
188
display_name = 'Type of Item'
189
- filter_field = 'type.keyword '
189
+ filter_field = 'type.raw '
190
190
191
191
192
192
class DecadeFF (FacetFilterType ):
@@ -201,7 +201,7 @@ class ESDecadeFF(ESFacetFilterType):
201
201
form_name = 'facet_decade'
202
202
facet_field = 'date'
203
203
display_name = 'Decade'
204
- filter_field = 'date.keyword '
204
+ filter_field = 'date.raw '
205
205
sort_by = 'value'
206
206
207
207
Original file line number Diff line number Diff line change @@ -10,15 +10,15 @@ def solr_escape(text):
10
10
11
11
class SortField (object ):
12
12
default = 'relevance'
13
- no_keyword = 'a'
13
+ default_without_query_string = 'a'
14
14
15
15
def __init__ (self , request ):
16
16
if (request .get ('q' )
17
17
or request .getlist ('rq' )
18
18
or request .getlist ('fq' )):
19
19
self .sort = request .get ('sort' , self .default )
20
20
else :
21
- self .sort = request .get ('sort' , self .no_keyword )
21
+ self .sort = request .get ('sort' , self .default_without_query_string )
22
22
23
23
24
24
class SearchForm (object ):
@@ -389,7 +389,7 @@ class ESCampusCarouselForm(CampusCarouselForm):
389
389
390
390
class AltSortField (SortField ):
391
391
default = 'oldest-end'
392
- no_keyword = 'oldest-end'
392
+ default_without_query_string = 'oldest-end'
393
393
394
394
395
395
class CollectionFacetValueForm (CollectionForm ):
You can’t perform that action at this time.
0 commit comments