これを返すプロシージャがあります。
SELECT TOP 15 SearchName, AlternateName, CountryName, StateProvince, Latitude, Longitude, Type, boost + k.Rank as Rank
FROM SearchLocations
INNER JOIN CONTAINSTABLE([SearchLocations], [SearchName], @Search) AS k
ON SearchLocations.Id = k.[Key]
ORDER BY Rank DESC
基本的には、全文検索[SearchLocations]
を行い、全文ランキングとブースト列に基づいて結果を並べ替えます。問題は、'ISABOUT("L*" WEIGHT(1.0))' を検索すると、"L" の入力として '@Search' に渡されるもので、次のような都市です。
- ラゴス ラゴス ナイジェリア
- ペルー リマ県リマ
よりも高く表示されLos Angeles California United States
ます。ブーストは低くなりますが、同じ単語を繰り返しているため、全文検索のランキングが高くなります。これは、単語を繰り返さないが、同じサブワードが複数回ある場所の場合にも発生します。
これを無効/回避するにはどうすればよいですか?