File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -161,10 +161,10 @@ def _parse_custom_facets(self):
161161 {
162162 'form_name' : custom_facet ['facet_field' ],
163163 'facet_field' : (
164- f"{ custom_facet ['facet_field' ][:- 3 ]} .keyword " ),
164+ f"{ custom_facet ['facet_field' ][:- 3 ]} .raw " ),
165165 'display_name' : custom_facet ['label' ],
166166 'filter_field' : (
167- f"{ custom_facet ['facet_field' ][:- 3 ]} .keyword " ),
167+ f"{ custom_facet ['facet_field' ][:- 3 ]} .raw " ),
168168 'sort_by' : custom_facet ['sort_by' ],
169169 'faceting_allowed' : True
170170 }
@@ -310,7 +310,7 @@ def get_mosaic(self):
310310 repositories .append (repository ['name' ])
311311
312312 if self .index == 'es' :
313- sort = ("sort_title.keyword " , "asc" )
313+ sort = ("sort_title.raw " , "asc" )
314314 else :
315315 sort = ("sort_title" , "asc" )
316316
Original file line number Diff line number Diff line change 3636FacetDisplay = namedtuple (
3737 'FacetDisplay' , 'facet, display' )
3838
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
4065UCLDC_SCHEMA_FACETS = [
4166 FacetDisplay ("title" , "title" ),
4267 FacetDisplay ("alternative_title" , "alternative title" ),
7095 for fd in UCLDC_SCHEMA_FACETS
7196]
7297UCLDC_ES_SCHEMA_FACETS = [
73- FacetDisplayField (fd .facet , fd .display , f"{ fd .facet } .keyword " )
98+ FacetDisplayField (fd .facet , fd .display , f"{ fd .facet } .raw " )
7499 for fd in UCLDC_SCHEMA_FACETS
75100]
76101
Original file line number Diff line number Diff line change 11""" logic for cache / retry for es (opensearch) and JSON from registry
22"""
33
4+ from calisphere .constants import UCLDC_SCHEMA_TERM_FIELDS
45from future import standard_library
56from django .core .cache import cache
67from django .conf import settings
@@ -166,9 +167,9 @@ def es_mlt(item_id):
166167 "query" : {
167168 "more_like_this" : {
168169 "fields" : [
169- "title.keyword " ,
170+ "title.raw " ,
170171 "collection_data" ,
171- "subject.keyword " ,
172+ "subject.raw " ,
172173 ],
173174 "like" : [
174175 {"_id" : item_id }
@@ -241,33 +242,12 @@ def query_encode(query_string: str = None,
241242 es_params ['query' ] = es_filters [0 ]
242243
243244 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- ]
265245 aggs = {}
266246 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 ' :
268248 field = facet
269249 else :
270- field = f'{ facet } .keyword '
250+ field = f'{ facet } .raw '
271251
272252 aggs [facet ] = {
273253 "terms" : {
Original file line number Diff line number Diff line change @@ -170,7 +170,7 @@ class ESRelationFF(ESFacetFilterType):
170170 form_name = 'relation_ss'
171171 facet_field = 'relation'
172172 display_name = 'Relation'
173- filter_field = 'relation.keyword '
173+ filter_field = 'relation.raw '
174174 sort_by = 'value'
175175 faceting_allowed = False
176176
@@ -186,7 +186,7 @@ class ESTypeFF(ESFacetFilterType):
186186 form_name = 'type_ss'
187187 facet_field = 'type'
188188 display_name = 'Type of Item'
189- filter_field = 'type.keyword '
189+ filter_field = 'type.raw '
190190
191191
192192class DecadeFF (FacetFilterType ):
@@ -201,7 +201,7 @@ class ESDecadeFF(ESFacetFilterType):
201201 form_name = 'facet_decade'
202202 facet_field = 'date'
203203 display_name = 'Decade'
204- filter_field = 'date.keyword '
204+ filter_field = 'date.raw '
205205 sort_by = 'value'
206206
207207
Original file line number Diff line number Diff line change @@ -10,15 +10,15 @@ def solr_escape(text):
1010
1111class SortField (object ):
1212 default = 'relevance'
13- no_keyword = 'a'
13+ default_without_query_string = 'a'
1414
1515 def __init__ (self , request ):
1616 if (request .get ('q' )
1717 or request .getlist ('rq' )
1818 or request .getlist ('fq' )):
1919 self .sort = request .get ('sort' , self .default )
2020 else :
21- self .sort = request .get ('sort' , self .no_keyword )
21+ self .sort = request .get ('sort' , self .default_without_query_string )
2222
2323
2424class SearchForm (object ):
@@ -389,7 +389,7 @@ class ESCampusCarouselForm(CampusCarouselForm):
389389
390390class AltSortField (SortField ):
391391 default = 'oldest-end'
392- no_keyword = 'oldest-end'
392+ default_without_query_string = 'oldest-end'
393393
394394
395395class CollectionFacetValueForm (CollectionForm ):
You can’t perform that action at this time.
0 commit comments