class_docstr: Merges a certain number of adjacent tokens into multi-word tokens, so
  that for example::
  
      "better", "a", "witty", "fool", "than", "a", "foolish", "wit"
  
  with ``ShingleFilter(3, ' ')`` becomes::
  
      'better a witty', 'a witty fool', 'witty fool than', 'fool than a',
      'than a foolish', 'a foolish wit'
  
  This can be used to create fields for pseudo-phrase searching, where if
  all the terms match the document probably contains the phrase, but the
  searching is faster than actually doing a phrase search on individual word
  terms.
  
  If you're using two-word shingles, you should use the functionally
  equivalent ``BiWordFilter`` instead because it's faster than
  ``ShingleFilter``.
code: def __init__(self, size=2, sep="-"):
      self.size = size
      self.sep = sep
  
imports: import re
  from collections import deque
  from whoosh.compat import u, text_type
  from whoosh.compat import xrange
  from whoosh.analysis.filters import Filter
label_desc: Use image node_id 1 to create a new ShingleFilter object from inherited base classes: Filter with example: obj = ShingleFilter(size, sep)