@@ -8,6 +8,8 @@ class SolrSearchResult
88 private $ numFound ;
99 private $ docs ;
1010
11+ private $ errorMessage = null ;
12+
1113 private $ facets = null ;
1214 private $ facetFields = null ;
1315
@@ -35,12 +37,22 @@ public function __construct($payload, SolrClient $client)
3537
3638 /**
3739 * @param mixed $payload
40+ * @throws \Exception
3841 */
3942 public function init ($ payload )
4043 {
4144 $ this ->params = $ payload ['responseHeader ' ]['params ' ];
45+
46+ // error
47+ if (!array_key_exists ('response ' , $ payload )) {
48+ $ this ->errorMessage = $ payload ['error ' ]['msg ' ];
49+ return ;
50+ }
51+
52+ // numFound
4253 $ this ->numFound = $ payload ['response ' ]['numFound ' ];
4354
55+ // facet_counts
4456 if (array_key_exists ('facet_counts ' , $ payload )) {
4557 $ this ->facets = $ payload ['facet_counts ' ];
4658 $ this ->facetFields = [];
@@ -51,6 +63,7 @@ public function init($payload)
5163 }
5264 }
5365
66+ // docs
5467 $ this ->docs = [];
5568 foreach ($ payload ['response ' ]['docs ' ] as $ doc ) {
5669 $ this ->docs [] = new SolrDocument ($ doc );
@@ -117,6 +130,11 @@ public function getDocs($format = 'array')
117130 return $ this ->docs ;
118131 }
119132
133+ public function errored ()
134+ {
135+ return $ this ->errorMessage != null ;
136+ }
137+
120138 /**
121139 * @return mixed
122140 */
@@ -158,4 +176,12 @@ public function getNextCursorMark()
158176 {
159177 return $ this ->nextCursorMark ;
160178 }
179+
180+ /**
181+ * @return null
182+ */
183+ public function getErrorMessage ()
184+ {
185+ return $ this ->errorMessage ;
186+ }
161187}
0 commit comments