Только ContainsTable
возвращает оценку релевантности. Вы не упомянули, что нужно вернуть, поэтому я просто возвратил имя таблицы, из которой хранится значение, вместе с первичным ключом данной таблицы (вы должны заменить «PrimaryKey» на фактическое имя столбца первичного ключа, например, PostId или PostCommentsId) , значение и его ранг.
Select Z.TableName, Z.PK, Z.Value, Z.Rank
From (
Select 'Posts' As TableName, Posts.PrimaryKey As PK, Posts.Description As Value, CT.Rank
From Posts
Join ContainsTable( Posts, Description, 'Anyword' ) As CT
On CT.Key = Posts.PrimaryKey
Union All
Select 'PostComments', PostComments.PrimaryKey, PostComments.Comments, CT.Rank
From PostComments
Join ContainsTable( PostComments, Comments, 'Anyword' ) As CT
On CT.Key = PostComments.PrimaryKey
) As Z
Order By Z.Rank Desc
РЕДАКТИРОВАТЬ Учитывая дополнительную информацию, это гораздо яснее. Во-первых, может показаться, что ранжирование поиска не имеет никакого отношения к результатам. Таким образом, все, что необходимо, это использовать ИЛИ между поиском по информации поста и поиском по PostComments:
Select ...
From Posts
Where Contains( Posts.Description, Posts.Title, 'searchterm' )
Or Exists (
Select 1
From PostComments
Where PostComments.PostId = Posts.Id
And Contains( PostComments.Comments, 'searchterm' )
)