@@ -70,37 +70,6 @@ def _load_next_page(self):
7070 self .pos = 0
7171 self .cursor = self .answer .get ('cursor' , None )
7272
73- class SynonymIterator :
74- """Iterator on the synonyms of an index"""
75-
76- def __init__ (self , index , hits_per_page = 1000 ):
77- self .index = index
78- self .hits_per_page = hits_per_page
79- self .page = 0
80-
81- def __iter__ (self ):
82- self ._load_next_page ()
83- return self
84-
85- def __next__ (self ):
86- return self .next ()
87-
88- def next (self ):
89- if self .pos >= len (self .response ['hits' ]):
90- self ._load_next_page ()
91- if self .pos < len (self .response ['hits' ]):
92- result = self .response ['hits' ][self .pos ]
93- self .pos += 1
94- # Remove highlighting.
95- if '_highlightResult' in result : del result ['_highlightResult' ]
96- return result
97- else :
98- raise StopIteration
99-
100- def _load_next_page (self ):
101- self .response = self .index .search_synonyms ('' , page = self .page , hits_per_page = self .hits_per_page )
102- self .page += 1
103- self .pos = 0
10473
10574class RuleIterator :
10675 """Iterator on the rules of an index"""
@@ -714,6 +683,20 @@ def search_synonyms(self, query, types=[], page=0, hits_per_page=100, request_op
714683
715684 return self ._req (True , '/synonyms/search' , 'POST' , request_options , data = data )
716685
686+ def iter_synonyms (self , hits_per_page = 1000 ):
687+ page = 0
688+ response = self .search_synonyms ('' , page = page , hits_per_page = hits_per_page )
689+
690+ while response ['hits' ]:
691+ for hit in response ['hits' ]:
692+ if '_highlightResult' in hit :
693+ del hit ['_highlightResult' ]
694+
695+ yield hit
696+
697+ page += 1
698+ response = self .search_synonyms ('' , page = page , hits_per_page = hits_per_page )
699+
717700 @deprecated
718701 def waitTask (self , task_id , time_before_retry = 100 ):
719702 return self .wait_task (task_id , time_before_retry )
0 commit comments