File tree Expand file tree Collapse file tree 1 file changed +32
-38
lines changed
src/components/data_search Expand file tree Collapse file tree 1 file changed +32
-38
lines changed Original file line number Diff line number Diff line change @@ -104,60 +104,54 @@ export const DatasetSearchTable = (props) => {
104104 queryChunks . push ( ...searchModifier ) ;
105105 }
106106
107- var filterQuery = { } ;
107+ let filterQuery = { } ;
108108 if ( numSelectedFilters ( filters ) > 0 ) {
109- const shouldTerms = [ ] ;
109+ const filterTerms = [ ] ;
110110
111- filters . accessManagement . forEach ( term => {
112- shouldTerms . push ( {
113- 'term' : {
114- 'accessManagement' : term
115- }
116- } ) ;
111+ filterTerms . push ( {
112+ 'bool' : {
113+ 'should' :
114+ filters . accessManagement . map ( term => ( {
115+ 'term' : {
116+ 'accessManagement' : term
117+ }
118+ } ) )
119+ }
117120 } ) ;
118121
119- filters . dataUse . forEach ( term => {
120- shouldTerms . push ( {
121- 'match' : {
122- 'dataUse.primary.code' : term
123- }
124- } ) ;
122+ filterTerms . push ( {
123+ 'bool' : {
124+ 'should' :
125+ filters . dataUse . map ( term => ( {
126+ 'match' : {
127+ 'dataUse.primary.code' : term
128+ }
129+ } ) )
130+ }
125131 } ) ;
126132
127- if ( shouldTerms . length > 0 ) {
133+ if ( filterTerms . length > 0 ) {
128134 filterQuery = [
129135 {
130136 'bool' : {
131- 'should ' : shouldTerms
137+ 'must ' : filterTerms
132138 }
133139 }
134140 ] ;
135141 }
136142 }
137143
138- // do not add filter subquery if no filters are applied
139- if ( numSelectedFilters ( filters ) > 0 ) {
140- return {
141- 'from' : 0 ,
142- 'size' : 10000 ,
143- 'query' : {
144- 'bool' : {
145- 'must' : queryChunks ,
146- 'filter' : filterQuery
147- }
148- }
149- } ;
150- } else {
151- return {
152- 'from' : 0 ,
153- 'size' : 10000 ,
154- 'query' : {
155- 'bool' : {
156- 'must' : queryChunks
157- }
144+ return {
145+ 'from' : 0 ,
146+ 'size' : 10000 ,
147+ 'query' : {
148+ 'bool' : {
149+ 'must' : queryChunks ,
150+ // Only add filter subquery when filters are applied.
151+ ...( Object . keys ( filterQuery ) . length > 0 && { 'filter' : filterQuery } )
158152 }
159- } ;
160- }
153+ }
154+ } ;
161155 } ;
162156
163157 const filterHandler = ( event , data , category , filter ) => {
You can’t perform that action at this time.
0 commit comments