default operator is AND now
[phorkie.git] / src / phorkie / Search / Elasticsearch.php
index d03ef3e..0ed766b 100644 (file)
@@ -34,7 +34,8 @@ class Search_Elasticsearch
                             'should' => array(
                                 (object)array(
                                     'query_string' => (object)array(
-                                        'query' => $term
+                                        'query' => $term,
+                                        'default_operator' => 'AND'
                                     ),
                                 ),
                                 (object)array(
@@ -42,7 +43,8 @@ class Search_Elasticsearch
                                         'type'         => 'file',
                                         'query' => (object)array(
                                             'query_string' => (object)array(
-                                                'query' => $term
+                                                'query' => $term,
+                                                'default_operator' => 'AND'
                                             )
                                         )
                                     )
@@ -53,9 +55,13 @@ class Search_Elasticsearch
                 )
             )
         );
-        //FIXME: error handling
         $httpRes = $r->send();
         $jRes = json_decode($httpRes->getBody());
+        if (isset($jRes->error)) {
+            throw new Exception(
+                'Search exception: ' . $jRes->error, $jRes->status
+            );
+        }
 
         $sres = new Search_Result();
         $sres->results = $jRes->hits->total;