MySQL довольно жесток в том, какие маркеры он игнорирует при построении полнотекстовых индексов. Я бы сказал, что там, где встречается термин «C ++», он, вероятно, удаляет символы плюс, оставляя только C, а затем игнорирует это, потому что он слишком короткий. Возможно, вы могли бы настроить MySQL так, чтобы он включал однобуквенные слова, но он не оптимизирован для этого, и я сомневаюсь, что вы можете заставить его обрабатывать символы плюс так, как вы хотите.
Если вам нужна хорошая внутренняя поисковая система, где вы можете настраивать подобные вещи, посмотрите Lucene , который был портирован на различные языки , включая PHP (в среде Zend) .
Или, если вам нужно больше для «пометки», чем текстовый поиск, тогда может подойти что-то еще.