@@ -32,12 +32,16 @@ def _get_index(self):
32
32
backend .algolia_app_id , account ._get_password ())
33
33
return client .initIndex (self .work .index .name )
34
34
35
- def _set_settings (self , index ):
35
+ def set_settings (self , force = True ):
36
36
"""Set advanced settings like facettings attributes."""
37
- data = self .work .index .settings
38
- if data :
39
- clean = json .loads (data )
40
- index .setSettings (clean )
37
+ set_settings = force
38
+ index = self ._get_index ()
39
+ data = self .work .index ._get_setting_values ()
40
+ if not force :
41
+ settings = index .get_settings ()
42
+ set_settings = not settings and True or False
43
+ if data and set_settings :
44
+ index .setSettings (data )
41
45
42
46
def index (self , datas ):
43
47
index = self ._get_index ()
@@ -47,7 +51,6 @@ def index(self, datas):
47
51
if not data .get ('objectID' ):
48
52
raise UserError (
49
53
_ ('The key objectID is missing in the data %s' ) % data )
50
- self ._set_settings (index )
51
54
index .add_objects (datas )
52
55
53
56
def delete (self , binding_ids ):
@@ -57,4 +60,4 @@ def delete(self, binding_ids):
57
60
def clear (self ):
58
61
index = self ._get_index ()
59
62
index .clear_index ()
60
- self ._set_settings ( index )
63
+ self .set_settings ( )
0 commit comments