docs: def collect_analysis(self):
          '''
          :return: a dictionary which is used to get the serialized analyzer definition from the analyzer class.
          '''
          analysis = {}
          for field in self.fields.values():
              for analyzer_name in ('analyzer', 'index_analyzer', 'search_analyzer'):
                  if not hasattr(field, analyzer_name):
                      continue
  
                  analyzer = getattr(field, analyzer_name)
  
                  if not isinstance(analyzer, Analyzer):
                      continue
  
                  definition = analyzer.get_analysis_definition()
                  if definition is None:
                      continue
  
                  for key in definition:
                      analysis.setdefault(key, {}).update(definition[key])
  
          return analysis