title: Django Haystack: Narrowing by facet with a space in it does not narrow
body: <p>I am having issues <code>narrowing</code> my <code>SearchQuerySet</code> by facets that have a space in them. </p>
  
  <p>I am using django-haystack with ElasticSearch </p>
  
  <p>I have the following Index:</p>
  
  <pre><code>class ProductIndex(indexes.SearchIndex, indexes.Indexable):
  
      text = indexes.CharField(document=True, use_template=True)
      title = indexes.CharField(model_attr='title') 
  
      category = indexes.MultiValueField(faceted=True) # m2m field
      weight = indexes.MultiValueField(faceted=True, null=True) 
      title_auto = indexes.EdgeNgramField(model_attr='title') # for autocomplete
  
  def get_model(self):
      return Product
  
  def prepare_category(self, obj):
      return [(cat.title) for cat in obj.categories.all()]
  
  def prepare_weight(self, obj):
      return [(meta.value) for meta in obj.productmeta_set.filter(label="weight")]
  </code></pre>
  
  <p>But I'm getting some very odd results when trying to query it: </p>
  
  <p>The total facet counts:</p>
  
  <pre><code>&gt;&gt;&gt; sqs = SearchQuerySet().all().facet("category")
  &gt;&gt;&gt; sqs.facet_counts()
  {'fields': {'category': [(u'Wall Tiles', 1028), (u'Floor Tiles', 440), (u'Baths', 49), (u'Basins', 25), (u'Toilets', 19)]}, 'dates': {}, 'queries': {}}
  </code></pre>
  
  <p>I have managed to get the correct value for Wall Tiles like so:</p>
  
  <pre><code>&gt;&gt;&gt; sqs.narrow("category:%s" % sqs.query.clean("Wall Tiles") ).count()
  1028 # correct value
  </code></pre>
  
  <p>(This is using the method used in <a href="https://github.com/toastdriven/django-haystack/blob/master/haystack/forms.py" rel="nofollow">FacetedSearchForm</a>)</p>
  
  <p>But strangely enough if I use the same approach for floor tiles I still get all the tiles:</p>
  
  <pre><code>&gt;&gt;&gt; sqs.narrow("category:%s" % sqs.query.clean("Floor Tiles") ).count()
  1468 # incorrect (count of floor tiles + wall tiles)
  </code></pre>
  
  <p>Even more perculiar is that if I change the above Wall Tiles query to use <code>_exact</code>, it returns the count of both!</p>
  
  <pre><code>&gt;&gt;&gt; sqs.narrow("category_exact:%s" % sqs.query.clean("Wall Tiles") ).count()
  1468
  </code></pre>
  
  <p>It works fine for categories that do not have a space in them. </p>
  
  <p>I'm sure I'm missing something basic here .. but I can't for the life of me see why I'm getting such odd results! </p>