title: SphinxSearch exact match ranking
body: <p>I noticed a strange behavior in the sort order using Sphinx 2.2.8 (same result with v2.3.1-beta).</p>
  
  <p>I expect exact matching to appear on first position (I set index_exact_words and expan_keywords for that).</p>
  
  <p>That works well on my first example below with two rows. But if I add more rows, weights change and my exact match result (id=1) gets a lower rank than other approximate one!</p>
  
  <p>For example, indexing these 2 words (some french words with morphology libstemmer_fr):</p>
  
  <pre><code>source nptest
  {
          type                    = pgsql
          sql_host                = localhost
          sql_user                = myuser
          sql_pass                = mypassword
          sql_db                  = mydb
          sql_port                = 5432
  
          sql_query               = \
                                    SELECT 1, 'chien' AS val \
                                    UNION \
                                    SELECT 2, 'chienne'
  
          sql_field_string = val
  }
  
  index nptest
  {
          type                    = plain
          mlock                   = 1
          source                  = nptest
          path                    = /var/lib/sphinx/data/nptest
          morphology              = libstemmer_fr
          index_exact_words       = 1
          expand_keywords         = 1
  }
  </code></pre>
  
  <p>After indexing (indexer --rotate nptest):</p>
  
  <pre><code>mysql&gt; SELECT id, val, weight() FROM nptest WHERE match('chien');
  +------+---------+----------+
  | id   | val     | weight() |
  +------+---------+----------+
  |    1 | chien   |     1500 |
  |    2 | chienne |     1428 |
  +------+---------+----------+
  2 rows in set (0.00 sec)
  </code></pre>
  
  <p>The word "chien" has a higher rank than "chienne" => that's what I expected.</p>
  
  <p>Now I add more rows to my db:</p>
  
  <pre><code>source nptest
  {
          type                    = pgsql
          sql_host                = localhost
          sql_user                = myuser
          sql_pass                = mypassword
          sql_db                  = mydb
          sql_port                = 5432
  
          sql_query               = \
                  SELECT 1, 'chien' AS val \
                  UNION \
                  SELECT 2, 'chienne' \
                  UNION \
                  SELECT 3, 'un beau chien' \
                  UNION \
                  SELECT 4, 'chien-loup'
  
          sql_field_string = val
  }
  
  
  mysql&gt; SELECT id, val, weight() FROM nptest WHERE match('chien');
  +------+---------------+----------+
  | id   | val           | weight() |
  +------+---------------+----------+
  |    2 | chienne       |     1402 |
  |    1 | chien         |     1373 |
  |    3 | un beau chien |     1373 |
  |    4 | chien-loup    |     1373 |
  +------+---------------+----------+
  4 rows in set (0.00 sec)
  </code></pre>
  
  <p>After reindexing the highest rank is now on "chienne"!</p>
  
  <p>Is this a normal behaviour (if so why?) or is it a bug?
  If it is not a bug, how can I ensure that exact matching will get the highest rank ?</p>