title: whoosh exact match for a phrase
body: <p>I want to find a phrase in a document, I've used the codes in the quick start.</p>
  
  <pre><code>&gt;&gt;&gt; from whoosh.index import create_in
  &gt;&gt;&gt; from whoosh.fields import *
  &gt;&gt;&gt; schema = Schema(title=TEXT(stored=True), path=ID(stored=True), content=TEXT)
  &gt;&gt;&gt; ix = create_in("indexdir", schema)
  &gt;&gt;&gt; writer = ix.writer()
  &gt;&gt;&gt; writer.add_document(title=u"First document", path=u"/a", content=u"This is the first document we've added!")
  &gt;&gt;&gt; writer.add_document(title=u"Second document", path=u"/b",  content=u"The second one is even more interesting!")
  &gt;&gt;&gt; writer.commit()
  &gt;&gt;&gt; from whoosh.qparser import QueryParser
  &gt;&gt;&gt; with ix.searcher() as searcher:
          query = QueryParser("content", ix.schema).parse("first")
          results = searcher.search(query)
          results[0]
  
      result: {"title": u"First document", "path": u"/a"}
  </code></pre>
  
  <p>But then I find they will split the keywords into several single word and then search the document.
  If I want to search a phrase like "the first guy here in the document", what should I do.</p>
  
  <p>On the document ,it said, use </p>
  
  <blockquote>
    <p>"it is a phrase"</p>
  </blockquote>
  
  <p>if I want to search for:</p>
  
  <blockquote>
    <p>it is a phrase.</p>
  </blockquote>
  
  <p>That confuses me.</p>
  
  <p>Besides, here is a class ,which seems can help me , but I don't know how to use it.</p>
  
  <pre><code>class whoosh.query.Phrase(fieldname, words, slop=1, boost=1.0, char_ranges=None)
   Matches documents containing a given phrase.
  </code></pre>
  
  <p>Update:
  I use it in this way, but there is no matches.</p>
  
  <pre><code>from whoosh.index import create_in
  from whoosh.fields import *
  schema = Schema(title=TEXT(stored=True), path=ID(stored=True),   content=TEXT)
  ix = create_in("indexdir", schema)
  writer = ix.writer()
  writer.add_document(title=u"First document", path=u"/a",
                   content=u"This is the first document we've added!")
  writer.add_document(title=u"Second document", path=u"/b",
                 content=u"The second one is even more interesting!")
  writer.commit()
  from whoosh.query import Phrase
  
  a = Phrase("content", u"the first")
  
  results = ix.searcher().search(a)
  print results
  </code></pre>
  
  <p>result: </p>
  
  <blockquote>
    <p>Top 0 Results for Phrase('content', u'the first', slop=1,
    boost=1.000000) runtime=0.0></p>
  </blockquote>
  
  <p>Update according to theOther</p>
  
  <pre><code>with ix.searcher() as searcher:
      query = QueryParser("content", ix.schema).parse(**'"first x document"'**)
  results = searcher.search(query)
  print results[0]
  </code></pre>
  
  <blockquote>
    <p>result : Hit {'content': u"This is the first document we've added!",
    'path': u'/a', 'title': u'First document'}></p>
  </blockquote>
  
  <p>I think there should be no matched result ,as there is no "first x document" in the document. Otherwise, it is not an exact match.</p>