Расстояние Хемминга может формализовать задачу: требуется найти ограниченную область, расстояние двух любых точек в котором будет определяться r. Точки представлены векторами, где единица - наличие определённого ключевого слова, а нуль - его отсутствие.
Очевидно, потребуется полный набор ключевых слов. К тому же, задача не тривиальная, как может показаться на первый взгляд, однако вполне можно считать один раз при создании/изменении материала, и добавлять к найденным новосозданный текст, чтобы не пересчитывать всё заново.
Хотя на самом деле, проще просто произвести SELECT по базе данных и брать первые несколько материалов, которые имеют хотя бы 1-2 общих тега. Такой эвристики более чем достаточно просто потому, что термин "похожий материал" сам по себе сильно субъективен.