I'm having some behavior I've not experienced before with Mysql's full text indexing. The relevance for a search with cell
comes back as 0 for all records. The in boolean
result though verifies the term is present (and the where
clause also).
select sum(char_length(concat(columns))), MATCH (columns) AGAINST ('+"cell"' IN BOOLEAN MODE), MATCH (columns) AGAINST ('"cell"'), id
from table
where MATCH (columns) AGAINST ('+"cell"' IN BOOLEAN MODE)
I checked the default stop word list, and verified I'm not using a custom list. What could be the reason for the 0
relevance and how can I correct it?
The content lengths vary greatly from 1717
characters up to 115905
so I wouldn't be surprised to see 4/115905 being ranked low (presuming it only occurred once). The 4/1717 I would expect to at least be a fraction though.. and this logic also assumes the term only appeared once. The term is present multiple times.
I read the manual entry as well and was thinking maybe this passage
Relevance is computed based on the number of words in the row (document), the number of unique words in the row, the total number of words in the collection, and the number of rows that contain a particular word.
and was thinking maybe because cell
is present in all the articles it nullified the result but that didn't match up with other tests I ran. For example animal model
brings back relevance as I'd expect.
My full text index length is 1 character.
The table with the index is:
ENGINE=MyISAM DEFAULT CHARSET=latin1 ROW_FORMAT=COMPRESSED