title: MySQL Match unexpected behavior
body: <p>I have a database of a list of all the PHP functions in an MyISAM table whose columns <code>function_name</code> and <code>description</code> are indexed using the <code>FULL TEXT</code> index. I'm getting some.. weird behavior with the <code>MATCH...AGAINST()</code> query, for example:</p>
  
  <pre><code>select * from functions where match(function_name) against('array_search');
  select * from functions where function_name = 'array_search'
  </code></pre>
  
  <p>Returns the expected rows, each query returning one row, but then:</p>
  
  <pre><code>select * from functions where match(function_name) against('each');
  select * from functions where function_name = 'each'
  </code></pre>
  
  <p>The second query only returns one row, while the first query returns nothing at all. </p>
  
  <p>I've also noticed that this tends to happen for "common" words in the <code>description</code> column (which should be irrelevant), for example, the same thing happens when searching for "while" but not for something like "array_pop". However, "count" does return the expected behavior.</p>
  
  <p>Also, the rows it gets unexpected behavior are rows I have newly inserted, for the most part (almost all the newly inserted rows do not work, but I'm not sure if all the rows that do not work are newly inserted)</p>
  
  <p>The only newly inserted row that does work are bizarre function names like:</p>
  
  <pre><code>select * from functions where match(function_name) AGAINST('asdadasdadasdadasdadasdad')
  </code></pre>
  
  <p>Returns the expected behavior. I have tried executing something like:</p>
  
  <pre><code>ALTER TABLE functions DROP INDEX description;
  ALTER TABLE functions DROP INDEX function_name;
  ALTER TABLE `functions` ADD FULLTEXT(`function_name`);
  ALTER TABLE `functions` ADD FULLTEXT(`description`);
  select * from functions where match(function_name) against('each');
  select * from functions where function_name = 'each';
  </code></pre>
  
  <p>Which still returns only one row on the last query and no rows for the MATCH() ...AGAINST query. I'm not sure what the math behind MATCH...AGAINST query is, but does anyone know the reason I might be running into this?</p>