@@ -18,34 +18,79 @@ public class CloudSearch {
18
18
var size : Int ?
19
19
var sort = [ AnyObject] ( )
20
20
21
+ var searchFilter : SearchFilter ?
22
+ var searchQuery : SearchQuery ?
21
23
22
- public init ( tableName: String , searchObject : SearchQuery ? , searchFilter: SearchFilter ? ) {
24
+ public init ( tableName: String , searchQuery : SearchQuery ? , searchFilter: SearchFilter ? ) {
23
25
self . collectionName = tableName
24
26
25
- if searchObject != nil {
26
- self . bool [ " bool " ] = searchObject ? . bool
27
+ if searchQuery != nil {
28
+ self . bool [ " bool " ] = searchQuery ? . bool
27
29
self . filtered [ " query " ] = self . bool
28
30
} else {
29
31
self . filtered [ " query " ] = [ : ]
30
32
}
31
-
32
33
if searchFilter != nil {
33
34
self . bool [ " bool " ] = searchFilter? . bool
35
+ self . filtered [ " filter " ] = self . bool
36
+ } else {
37
+ self . filtered [ " filter " ] = [ : ]
38
+ }
39
+
40
+ self . from = 0
41
+ self . size = 10
42
+
43
+ }
44
+
45
+ public init ( tableName: String ) {
46
+ self . collectionName = tableName
47
+
48
+ self . filtered [ " query " ] = [ : ]
49
+ self . filtered [ " filter " ] = [ : ]
50
+
51
+ self . from = 0
52
+ self . size = 10
53
+
54
+ }
55
+ public init ( tableName: String , searchQuery: SearchQuery ? ) {
56
+ self . collectionName = tableName
57
+
58
+ if searchQuery != nil {
59
+ self . bool [ " bool " ] = searchQuery? . bool
34
60
self . filtered [ " query " ] = self . bool
35
61
} else {
36
62
self . filtered [ " query " ] = [ : ]
37
63
}
64
+ self . filtered [ " filter " ] = [ : ]
38
65
39
66
self . from = 0
40
67
self . size = 10
41
68
42
69
}
70
+ public init ( tableName: String , searchFilter: SearchFilter ? ) {
71
+ self . collectionName = tableName
72
+
73
+ self . filtered [ " query " ] = [ : ]
74
+
75
+ if searchFilter != nil {
76
+ self . bool [ " bool " ] = searchFilter? . bool
77
+ self . filtered [ " filter " ] = self . bool
78
+ } else {
79
+ self . filtered [ " filter " ] = [ : ]
80
+ }
81
+
82
+ self . from = 0
83
+ self . size = 10
84
+
85
+ }
86
+
43
87
44
- public init ( tableName: [ String ] , searchObject: SearchQuery ? , searchFilter: SearchFilter ? ) {
88
+
89
+ public init ( tableName: [ String ] , searchQuery: SearchQuery ? , searchFilter: SearchFilter ? ) {
45
90
self . collectionArray = tableName
46
91
47
- if searchObject != nil {
48
- self . bool [ " bool " ] = searchObject ? . bool
92
+ if searchQuery != nil {
93
+ self . bool [ " bool " ] = searchQuery ? . bool
49
94
self . filtered [ " query " ] = self . bool
50
95
} else {
51
96
self . filtered [ " query " ] = [ : ]
@@ -62,6 +107,16 @@ public class CloudSearch {
62
107
self . size = 10
63
108
64
109
}
110
+
111
+ func setSearchFilter( searchFilter: SearchFilter ) {
112
+ self . bool [ " bool " ] = searchFilter. bool
113
+ self . filtered [ " query " ] = self . bool
114
+ }
115
+
116
+ func setSearchQuery( searchQuery: SearchQuery ) {
117
+ self . bool [ " bool " ] = searchQuery. bool
118
+ self . filtered [ " query " ] = self . bool
119
+ }
65
120
66
121
67
122
// MARK: Setters and getter
@@ -97,6 +152,14 @@ public class CloudSearch {
97
152
}
98
153
99
154
public func search( callback: ( CloudBoostResponse ) -> Void ) throws {
155
+
156
+ if let sf = self . searchFilter {
157
+ self . setSearchFilter ( sf)
158
+ }
159
+ if let sq = self . searchQuery {
160
+ self . setSearchQuery ( sq)
161
+ }
162
+
100
163
var collectionString = " "
101
164
if self . collectionArray. count > 0 {
102
165
if collectionArray. count > 1 {
@@ -109,7 +172,7 @@ public class CloudSearch {
109
172
} else {
110
173
collectionString = self . collectionName!
111
174
}
112
-
175
+ query [ " filtered " ] = filtered
113
176
let params = NSMutableDictionary ( )
114
177
params [ " collectionName " ] = collectionString
115
178
params [ " query " ] = query
0 commit comments