基于拼音的查询

编程入门 行业动态 更新时间:2024-10-10 07:21:33

基于<a href=https://www.elefans.com/category/jswz/34/1767611.html style=拼音的查询"/>

基于拼音的查询

<本实例基于 3.5, sql server 2008 R2, silverlight 4>

在前人的基础上进行反思。

看到一个相对旧的应用系统,可以在界面输入拼音首字母而完成中文字符串,可是,这个系统是需要在用户数据库中的用户表中建立拼音列的,且用sql字符串匹配进行拼音查询。这样的话,与用户数据库产生耦合不说,还不能处理多音字,于是本人开发了这个拼音查询。拼音码表采用winxp中文版拼音输入法转换而来的码表,可处理unicode中文统一字符集的20902个汉字的拼音。

开发完成后进行测试,首先做好的模块集成进sql server 2008 r2,作为clr用户定义标量函数

然后在数据库中建立如下测试表

CREATE TABLE [dbo].[TextTest](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Text] [nvarchar](100) NOT NULL

再执行如下sql脚本填充测试数据,十万条随机中文串,长度为3~15个中文字符

delete from texttest
dbcc checkident ('texttest',reseed,0)

declare @count int;
declare @len int
declare @i int
declare @text nvarchar(50)

set @count = 1
while (@count <= 100000)
begin
set @len = cast((RAND() * 13 + 3) as int)
set @i = 1
set @text = ''
while(@i <= @len)
begin
set @text = @text + NCHAR(cast((RAND() * 20902 + 19968) as int))
set @i = @i + 1
end
insert into texttest (text) values(@text)
set @count = @count + 1
end

表中数据如下(前100条)

ID          Text
----------- ----------------------------------------------------------------------------------------------------
1 滇舆的囵陙奕吽础喈鬥贤
2 葨檂湄鲝
3 銚锈黋瘪肭獠翝轟襅史
4 溵訓觮旴貢姀貖螝牊倗运
5 矸蓆鐓綐蠲计鸝暀怙控鶋許
6 訉弾盡朼駂烚迣軲鸌飯搇
7 籕蛏窾観筛柣
8 癟饙檋釭伏叶唭鱗襨蓔
9 肔蓓頿禙
10 愉摏獔卩鱺窫顯埵鮛魏攲蛦篹猨嚦
11 销昢腢玥暷崄勥椈昋矋斫胲抗
12 聊艴啌堄咙澯垵疩毂薎霰濺鎕砠砾
13 是幒淢鳪秝烻藡犷訳
14 罥惈烣鸫枿軖駊墯籢恱抢赟踾妨邚
15 鏺慁莓鈋力萤刄頠瞠镔棻螘
16 酆鏏弔礼涇鱋秓揳鈏抠芻誦昜淁戛
17 坫痺剿馐楠懠湑裶
18 憅貭嗱緸緂贸
19 鰜癀裧傐镚健綽渴罉裗婣
20 軥樲鬊咄敍齆幗竮糛
21 緻郙旄瞇灟瀐腽砦扺删堫粊巍阨毢
22 怒紗礅箍卍
23 籵鏊诎簵褳潘兠亢帆貖陗敺鋥
24 鄀谩毵糱
25 镂淐臣獴矾獖鬏絧哱笈垦釆縅堖洽
26 覆论鼮卡臈昵
27 粰璱裀翝蘀逢佊椰済翄
28 釵障苣喠饷窟睞髕會琵郻馶童凘
29 彵高峞
30 弯哪恅駳笪邪
31 缭駱俜茟寲镪矖衋飹齵舋酀耲
32 訢嶄挹葫嶕赅焧蔑咴拉
33 摡驵琨灓鬅枸蝇遤琉鹇巕
34 庒钝輄獀共溥伥偹袸螭擼笜怯濢
35 伆傒俷
36 則綳伒鏖弍隲姊鳠領氭漜駿犿斗
37 赪位弍勃艞臹覓
38 樻鵑喘祒就
39 牳懜光缝蜶
40 晻唱叨
41 翮幑雅聴阗
42 欦丙爽頇
43 鞼榸鏠衢鞴
44 彆犰挢遢栬怤鐟獊鯧聏罭訯
45 浚鰃斜晎攅漺鸆馕貊傪钶乍
46 啢緧璇龉仄瀗鈡伒捆所圚
47 嘷徊覹酪抭俌鶢矤圪烴祆炝僯鵤贻
48 乽妏盆芘転輰蒦燂縙禚
49 聴磌桰窄疡礦煰煊慢聏倒紤
50 罯勼冲痵厁致夯茅裔醊寏吋萎懖
51 鳿仩爍糛柃猙鼔
52 坮妙框私境鳤滨聫
53 磵譅幟挧受兯抦姟緻還鸼
54 驩骗桻賫憙徏鳘坕弄匣臚絇
55 鏒蠪侑矐崨焮踔儲潾焰槗
56 顯棫单碦译
57 爣曁簿鞋哴囙罱屩凄蚘帘
58 虇創膒翠胨樵嫆纲皿績噎喯殲
59 闹鑩劭頫欕
60 磀搟犈
61 叚炛蠡桝宀仢奫攳癵
62 瘽婯檑
63 鼭襌瘠矬圡
64 夅頸口庎繗礿肰玡
65 貀欣扯愿鈞编岿駵傘爐
66 雜塐宸線擐诰锞丕弁锗閝挿
67 罀噕覉橔喩瘵謢瑙旘埮
68 媬襣花嘕弙譑廘羑盧詈臶
69 呶浇蝖沅
70 瓻膎笤鯒吁埄舎罋駟瓒逐濉昒
71 炇牾凤珯
72 瀾詅擾鞃
73 沮玍黣戺
74 銛見抻慂
75 筆瀥酸鍛訌蘫娕誚恻繱垁
76 鱽畿齍関薅隖鴮嗩導惧莑爫矁
77 刡圌汎厞
78 楑帞俏鄺艷
79 鉹喗蹮
80 寮钰閸揉垘疰
81 姎嚍簰榡坦听揙囜矺弣掓勌醽蓅
82 峹默放蚹鍕擱翲鄘氉脡弳犼黿
83 梏洽烕藊沐糒
84 跅詇跋樇述虂焟驍秹辒憘籎
85 烙鑤杙朵篁叠畸妝
86 絮洼棢
87 瑵嚄贃諀櫠細醄矝硠枷踠
88 剄罬禇
89 荅俯寃櫴碿抄鴩熛燓緆俬頶睹歝
90 踬觨邂麗濧躬鮁
91 嶒乇懦蟵靜逰楬觰熎讽顥
92 悙佑滟鰰挃警
93 睝蕲掣
94 沍尮醾痥淃俽灤蕢弛掅躷睔
95 蘘焖銣洩墸
96 鄏雺芀闋庶喷朢
97 鈈冓瞥簢塓瞳犹灕蒲绔觓允
98 娏逓搂
99 闂崰询抐錩姿鉣
100 阝弅惣攦罵蚿蹋

(100 row(s) affected)

 

执行如下sql脚本获取拼音

select top 100 
id,
text,
dbo.GetPinyinString(text,1,'{','}',0,',',0) as py,
dbo.GetPinyinString(text,0,'{','}',0,',',1) as fullpy
from TextTest

 

结果

 

执行如下sql脚本进行匹配测试

select 
id,
text,
dbo.GetPinyinString(text,1,'{','}',0,',',0) as py
from TextTest
where dbo.PinyinMatchChinese(text,'asd',1,'{','}',',',0) = 1

匹配结果

 

最后,于silverlight4 autocomplete组件呈现

转载于:.html

更多推荐

基于拼音的查询

本文发布于:2024-02-14 03:15:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1761837.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:拼音

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!