18
18
"""
19
19
20
20
import json
21
+ import pysolr
21
22
from watson_developer_cloud .watson_developer_cloud_service import WatsonDeveloperCloudService
22
23
23
24
@@ -28,6 +29,56 @@ def __init__(self, url=default_url, username=None, password=None, use_vcap_servi
28
29
WatsonDeveloperCloudService .__init__ (self , 'retrieve_and_rank' , url , username , password ,
29
30
use_vcap_services )
30
31
32
+ def list_solr_clusters (self ):
33
+ return self .request (method = 'GET' , url = '/v1/solr_clusters' , accept_json = True )
34
+
35
+ def create_solr_cluster (self , cluster_name = None , cluster_size = None ):
36
+ if cluster_size and isinstance (cluster_size , (int , long )):
37
+ cluster_size = str (cluster_size )
38
+ params = {'cluster_name' : cluster_name , 'cluster_size' : cluster_size }
39
+ return self .request (method = 'POST' , url = '/v1/solr_clusters' , accept_json = True , json = params )
40
+
41
+ def delete_solr_cluster (self , solr_cluster_id ):
42
+ return self .request (method = 'DELETE' , url = '/v1/solr_clusters/{}' .format (solr_cluster_id ), accept_json = True )
43
+
44
+ def get_solr_cluster_status (self , solr_cluster_id ):
45
+ return self .request (method = 'GET' , url = '/v1/solr_clusters/{}' .format (solr_cluster_id ), accept_json = True )
46
+
47
+ def list_configs (self , solr_cluster_id ):
48
+ return self .request (method = 'GET' , url = '/v1/solr_clusters/{}/config' .format (solr_cluster_id ), accept_json = True )
49
+
50
+ # Need to test
51
+ def create_config (self , solr_cluster_id , config_name , config ):
52
+ return self .request (method = 'POST' , url = '/v1/solr_clusters/{}/config/{}' .format (solr_cluster_id , config_name ),
53
+ files = {'body' : config }, accept_json = True )
54
+
55
+ def delete_config (self , solr_cluster_id , config_name ):
56
+ return self .request (method = 'DELETE' , url = '/v1/solr_clusters/{}/config/{}' .format (solr_cluster_id , config_name ),
57
+ accept_json = True )
58
+
59
+ def get_config (self , solr_cluster_id , config_name ):
60
+ return self .request (method = 'GET' , url = '/v1/solr_clusters/{}/config/{}' .format (solr_cluster_id , config_name ),
61
+ accept_json = True )
62
+
63
+ def list_collections (self , solr_cluster_id ):
64
+ return self .request (method = 'GET' , url = '/v1/solr_clusters/{}/collections' .format (solr_cluster_id ),
65
+ accept_json = True )
66
+
67
+ def create_collection (self , solr_cluster_id , collection_name , config_name ):
68
+ params = {'collection.configName' : config_name , 'name' : collection_name }
69
+ return self .request (method = 'POST' , url = '/v1/solr_clusters/{}/collections' .format (solr_cluster_id ),
70
+ params = params , accept_json = True )
71
+
72
+ def delete_collection (self , solr_cluster_id , collection_name , config_name ):
73
+ params = {'name' : collection_name , 'action' : 'DELETE' }
74
+ return self .request (method = 'POST' , url = '/v1/solr_clusters/{}/collections' .format (solr_cluster_id ),
75
+ params = params , accept_json = True )
76
+
77
+ def get_pysolr_client (self , solr_cluster_id , collection_name ):
78
+ base_url = self .url .replace ('https://' , 'https://' + self .username + ':' + self .password + '@' )
79
+ url = base_url + '/v1/solr_clusters/{}/solr/{}' .format (solr_cluster_id , collection_name )
80
+ return pysolr .Solr (url )
81
+
31
82
def create_ranker (self , training_data , name = None ):
32
83
data = None
33
84
if name :
0 commit comments