Как грамотно выводить и определять похожие новости на сайте?
Реализовал подобное на solr использовал more like this запрос. В качестве поискового поля задал полный текст статьи
Если у вас классическая связка php+MySQL то phpmorphy — самое то.
Прогоняете весь текст через phpmorphy, добавляете его в поле таблицы MySQL — предварительно создав индекс FULLTEXT для этого поля (тип, ес-но, должен быть VARCHAR) 
в SQL запросе для определения «похожести» используйте конструкцию MATCH (col1,col2,...) AGAINST (expr [search_modifier])
например 
SELECT *  FROM news WHERE MATCH (tags)  AGAINST ('слово другое третье' ) > 20 

здесь, tags — то самое поле, а 20 — минимальная релевантность (это значение зависит от вашего контента)