亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

存儲過程模糊搜索,按匹配率排序初探

2024-07-21 02:49:38
字體:
來源:轉載
供稿:網友
存儲過程模糊搜索,按匹配率排序初探

最近的項目中有個搜索的功能,本來說,搜索簡單做就可以了,直接like百分號就Ok了。但想了想,咱必須做點高大上的東西出來啊,再加上想練習下我并不熟練的存儲過程,所以,決定搞得高大上些。以前做搜索的時候沒有考慮那么多,但畢竟項目的使用者是廣大用戶,為了增加用戶體驗,所以應該提供給用戶最想搜索的結果給用戶,這里就涉及到了排序,而且是按匹配率排序,也可以說是精確度吧。網上找了會也沒找到合適的。所以就自己寫了。

  首先說下我的思維原理:第一步,將要搜索的關鍵詞進行分割,單獨進行模糊匹配。例如:“我是中國人”分割成"我","我是","我是中","我是中國",“我是中國人”,分別對這些關鍵詞進行匹配,第二步,將匹配結果分配到對應的字段,然后按最長的關鍵詞進行排序,就得到了我們想要的結果。

  分配關鍵詞的邏輯本來也是打算寫到程序代碼中的,然后動態生成sql語句,發送到數據庫進行執行,但之前不知道在哪兒看到的一篇文章,大概意思就是這樣會增加網絡的吞吐量(現在也無從考證了,知道的告訴我一下吧。)。所以就把整個邏輯寫到了存儲過程中。

下面直接上sql代碼

 1 create PRoc [dbo].[sp_Fuzzy_Search] 2 @keyWord nvarchar(15),--將關鍵詞限制在15個字。主要出于性能的原因。再者是匹配一個的搜索詞差不多已經可以滿足用戶的搜索需求了。 3 @tablename varchar(20),--要搜索的表明 4 @cellname varchar(20)--要匹配的字段。此處就寫了一個字段,多個字段的匹配不在考慮范圍內。 5 as 6 begin 7 declare @sql nvarchar(500), @num int,@i int,@orderby varchar(200) 8 set @i=0 9 set @num=len(@keyword)10 set @sql='select id,'+@cellname+' from ( select id, '+@cellname+','11 set @orderby=''12 while @i<@num  --循環獲取關鍵詞。此處是從最長的關鍵詞進行循環的,有利于排序的處理。13 begin14 set @sql+=' case when PATINDEX(''%'+substring(@keyword,1,@num)+'%'','+@cellname+')>0 then 1 else 0 end as t'+convert(varchar,@num)+','15 set @orderby+='t'+convert(varchar,@num)+' desc,'16 set @num-=117 18 end19 --拼接sql語句20   set @sql=left(@sql,len(@sql)-1)+' from '+@tablename+') as TT where t1>0 order by '+left(@orderby,len(@orderby)-1)21   --執行拼接好的sql語句。22 EXEC sp_executesql @sql23 24 end

測試用數據如下圖:

搜索關鍵詞“中國人”,返回值如下:

大概思路就是這樣的,貌似有點bug,各位看官有好的意見或建議,還請不吝賜教。 謝謝。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美国产日本高清在线| 精品久久久久久国产91| 国产精品久久久久久婷婷天堂| 91精品视频观看| 亚洲香蕉av在线一区二区三区| 国产91免费观看| 欧美激情亚洲综合一区| 欧美亚洲国产视频小说| 91久久久久久国产精品| 欧美精品日韩三级| 国产精品第七影院| 久久免费视频网站| 亚洲高清av在线| 日韩av网址在线观看| 91香蕉嫩草神马影院在线观看| 欧美成人精品在线播放| 97国产在线视频| 国产精品久久久久久久久粉嫩av| 日韩在线播放视频| 国产日韩在线亚洲字幕中文| 在线看日韩欧美| 美女扒开尿口让男人操亚洲视频网站| 国产欧美一区二区三区久久| **欧美日韩vr在线| 亚洲国产精品电影| 91中文精品字幕在线视频| 色综合久久精品亚洲国产| 欧美日韩视频在线| 国产成人综合精品在线| 少妇精69xxtheporn| 色噜噜国产精品视频一区二区| 亚洲国产天堂网精品网站| 亚洲精品97久久| 丰满岳妇乱一区二区三区| 国产91精品久久久久久久| 欧美日韩在线免费| 国产欧美 在线欧美| 一区二区三区高清国产| 2019中文字幕在线| 欧美一区二区视频97| 久久久久久国产三级电影| 福利视频一区二区| zzjj国产精品一区二区| 欧美午夜精品久久久久久人妖| 成人黄色av免费在线观看| 日韩在线播放一区| 亚洲无av在线中文字幕| 久久视频中文字幕| 久久综合色88| 久久精品国产精品亚洲| 日韩av综合中文字幕| 成人免费网视频| 日韩精品黄色网| 成人精品在线观看| 日韩av电影在线播放| 欧美激情亚洲自拍| 欧美精品午夜视频| 日本高清+成人网在线观看| 亚洲精品99久久久久中文字幕| 视频在线一区二区| 亚洲欧美国产一本综合首页| 欧美—级a级欧美特级ar全黄| 日韩精品视频在线| 久久久精品影院| 亚洲大胆美女视频| 日韩免费av片在线观看| 日韩精品视频三区| 欧美日韩一区二区三区在线免费观看| 久久高清视频免费| 国产日韩在线看| 成人精品视频99在线观看免费| 久久综合电影一区| 国产精品igao视频| 亚洲欧洲午夜一线一品| 日韩不卡中文字幕| 亚洲国产精品成人一区二区| 欧美电影免费观看电视剧大全| 欧美激情一区二区三区在线视频观看| 久久久亚洲国产| 国产精品视频自拍| 日韩成人av在线播放| 欧美日韩激情视频| 大桥未久av一区二区三区| 成人网中文字幕| 日韩在线免费视频观看| 国产成人综合亚洲| 91亚洲精品一区二区| 色噜噜亚洲精品中文字幕| 日韩高清不卡av| 欧美午夜精品久久久久久人妖| 欧美巨乳美女视频| 国产在线视频不卡| 久久精品视频亚洲| 亚洲国产精品久久久久久| 欧美高清在线播放| 国产精品久久久久一区二区| 国产精品丝袜视频| 亚洲免费视频网站| 亚洲视频在线看| 免费91麻豆精品国产自产在线观看| 色琪琪综合男人的天堂aⅴ视频| 中文字幕日韩免费视频| 91国产视频在线播放| 国产91精品在线播放| 欧美又大又硬又粗bbbbb| 性色av一区二区三区免费| 欧美亚洲成人网| 九九热r在线视频精品| 亚洲性生活视频在线观看| 日韩电影第一页| 国产精品美女久久久免费| 国产精品一区二区电影| 欧美激情一区二区三区在线视频观看| 伊人久久久久久久久久| 亚洲人成自拍网站| 亚洲福利视频久久| 亚洲色图美腿丝袜| 日韩国产欧美精品在线| 91成人性视频| 国产精彩精品视频| 91精品久久久久久久久久| 九九热精品在线| 国产精品pans私拍| 国产精品一区二区三区久久久| 午夜精品一区二区三区在线视频| 久久久久免费精品国产| 成人在线精品视频| 亚洲区bt下载| 日本三级久久久| 欧美午夜丰满在线18影院| 国产精品电影观看| 久久伊人91精品综合网站| 奇米影视亚洲狠狠色| 午夜免费日韩视频| 91精品国产91久久久久久久久| 色偷偷888欧美精品久久久| 成人疯狂猛交xxx| 久久精品亚洲精品| 国产精品一区二区三区毛片淫片| 欧美视频第一页| 欧美性20hd另类| 久久久国产成人精品| 国a精品视频大全| 国产午夜精品一区二区三区| 亚洲第一二三四五区| 欧美wwwxxxx| 久久精品国产一区二区电影| 欧美成人三级视频网站| 国产精品爽爽ⅴa在线观看| 亚洲国产97在线精品一区| 午夜精品福利在线观看| 国产mv久久久| 九九热这里只有在线精品视| 午夜精品美女自拍福到在线| 久久久久女教师免费一区| 欧美专区在线观看| 日韩国产欧美区| 亚洲精品资源美女情侣酒店| 国外成人在线直播| 亚洲精品白浆高清久久久久久| 国模私拍一区二区三区| 久久久伊人欧美| 亚洲精品国产品国语在线| 国产91成人在在线播放|