SQL全文索引包含

时间:2015-04-19 06:31:15

标签: sql sql-server full-text-indexing containstable

我是SQL FTI的新手,我正在努力完善对包含数百万种不同产品的表的搜索。

如果我通过了这样的搜索:

select top 100 * from OMG_ProductFeeds.dbo.tbl_products
 where CONTAINS(ProductName,'"apple iphone 6"')

我得到了这些结果:

Acm Rich Leather Soft Carry Case For Apple Iphone 6 Mobile Handpouch Holder Cover - Black
Apple iPhone 6 - 16 GB
Apple iPhone 6 Plus - 64 GB
Apple iPhone 6 - 64 GB
Apple iPhone 6 Plus - 16 GB
Chevron Set Of 3 Ultra Clear Screen Guard + 3 Matte Finish Screen Guard For Apple Iphone 6 - Combo Offer
Softy Back Cover Case For Apple Iphone 6 - Golden
Chevron Ultra Clear Hd Finish Screen Guard Protector For Apple Iphone 6 (pack Of 5)

我希望能够包含实际的iphone 6手机但忽略任何外围设备,例如外壳和屏幕保护膜,但我不知道该怎么做。

感谢任何建议。

由于

1 个答案:

答案 0 :(得分:2)

您可以考虑使用额外的表格tbl_product_categories重新设计数据库结构。

tbl_products中,我们可以添加一个外键列,以引用tbl_product_categories中的相应类别。因此,您只能使用特定关键字过滤特定类别。

SELECT TOP 100 *
FROM OMG_PRODUCTFEEDS.DBO.TBL_PRODUCTS
WHERE CONTAINS(PRODUCTNAME,'"APPLE IPHONE 6"')
AND product_category_id = 1;