class_docstr: Transforms the text of the tokens using Lawrence Philips's Double
  Metaphone algorithm. This algorithm attempts to encode words in such a way
  that similar-sounding words reduce to the same code. This may be useful for
  fields containing the names of people and places, and other uses where
  tolerance of spelling differences is desireable.
class_docstr_tok: ["Transforms","the","text","of","the","tokens","using","Lawrence","Philips","'s","Double","Metaphone","algorithm",".","This","algorithm","attempts","to","encode","words","in","such","a","way","that","similar-sounding","words","reduce","to","the","same","code",".","This","may","be","useful","for","fields","containing","the","names","of","people","and","places",",","and","other","uses","where","tolerance","of","spelling","differences","is","desireable","."]
code: def __call__(self, tokens):
      primary_boost = self.primary_boost
      secondary_boost = self.secondary_boost
      combine = self.combine
  
      for t in tokens:
          if combine:
              yield t
  
          primary, secondary = double_metaphone(t.text)
          b = t.boost
          # Overwrite the token's text and boost and yield it
          if primary:
              t.text = primary
              t.boost = b * primary_boost
              yield t
          if secondary:
              t.text = secondary
              t.boost = b * secondary_boost
              yield t
  
imports: from whoosh.analysis.filters import Filter
  from whoosh.compat import integer_types
  from whoosh.lang.dmetaphone import double_metaphone
  from whoosh.lang.porter import stem
  from whoosh.util.cache import lfu_cache, unbound_cache
label_desc: Use image node_id 3 for calling the DoubleMetaphoneFilter obj's underlying member method code with example usage: obj.__call__(tokens) without return types