2011年4月

转:MS SQL自定义函数查找相似记录并计算相似度

问题描述:

表结构如下

ShopID    Tag                    TagType
--------------------------------------
1      手抓肉 烤肉 抓饭 拉条子      2
2      烤肉 抓饭 拉条子             2
3      手抓肉 抓饭 拉条子           2
4      手抓肉 烤肉 抓饭             2
5      囊坑肉 大盘鸡 抓饭 拉条子    2
6      拌面 烤肉 抓饭 拉条子        2
7      手抓肉 大盘鸡 抓饭 拉条子    2

需要搜索与提供的Tag内容(如手抓肉 烤肉 抓饭)相似的记录,并按照相似度从高到低排列,其中Tag是以空格分割的,如上的内容就是说Tag包含手抓肉,烤肉,抓饭,而其他数据只要包含其中一条就表示他们相似,包含的越多就表示越相似。

用自定义函数查找记录和计算相似度,查询时按相似度排序,相似度的定义是,与提供的Tag中的一项相符的就加1,以最后的和来表示相似度。

- 阅读剩余部分 -