我已經得到以下查詢,它使用全文索引搜索匹配查詢的TOP 5產品(來自RawProducts表),在給定Shop中(由@ShopId變量)。目前,我一遍又一遍地爲每個ShopId(有27個商店)調用這個程序 - 這有點慢。優化SQL 2008全文查詢(CONTAINSTABLE)
我的問題是 - 誰能讓我知道如何修改查詢來接受@ShopId變量中ShopIds的逗號分隔列表,並返回每個店鋪的TOP 5匹配?
這裏的查詢到目前爲止:
DECLARE @ShopId uniqueidentifier
SET @ShopId = '49506541-4ce2-40ac-812a-7ab262e6f0b0'
SELECT TOP 5
ftt.RANK,
rp.*
FROM RawProducts rp
JOIN CONTAINSTABLE(RawProducts,
RawProductName,
'ISABOUT("*radox*","*shower*")') AS ftt ON ftt.key = rp.RawProductId
WHERE rp.ShopId = @ShopId
ORDER BY ftt.RANK DESC
UDF通常速度更快,而XML替代方案可用於SQL Server 2005。 – 2009-09-19 21:13:49