sql全文检索的使用.docx

上传人:rrsccc 文档编号:9853686 上传时间:2021-03-30 格式:DOCX 页数:9 大小:16.38KB
返回 下载 相关 举报
sql全文检索的使用.docx_第1页
第1页 / 共9页
sql全文检索的使用.docx_第2页
第2页 / 共9页
sql全文检索的使用.docx_第3页
第3页 / 共9页
sql全文检索的使用.docx_第4页
第4页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《sql全文检索的使用.docx》由会员分享,可在线阅读,更多相关《sql全文检索的使用.docx(9页珍藏版)》请在三一文库上搜索。

1、sql全文检索的使用godrop table t_testCREATE TABLEdbo.t_test(IDintNOT NULL,titlevarchar(400)NULL,contenttextNULLCONSTRAINTPK_t_testPRIMARY KEY CLUSTERED(IDASC)WITH (PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF, ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ONPRIMARY)ONPRIMARYTEXTIMAGE_ONPRIMARYtrunca

2、te table t_testINSERT INTO T_Test(id,title,CONTENT)SELECT 1,JAVA是面对对象的语言,是面对对象的语言UNION ALLSELECT 2,PHP学起来比JAVA要容易点,PHP学起来比JAVA要容易点UNION ALL SELECT 3,ASP比PHP用起来简单,PHP比JAVA用起来简单,ASP比PHP用起来简单,PHP比JAVA用起来简单UNION ALLSELECT4,FLEX做出来的界面好漂亮,而且可以和ASP,PHP,JAVA结合使用,FLEX做出来的界面好漂亮,而且可以和ASP,PHP,JAVA结合使用UNION ALLS

3、ELECT 5,ASP,PHP用来做网页都不错,ASP,PHP用来做网页都不错INSERT INTO T_Test(id,title,CONTENT)SELECT 6,JAVA是面对对象的语言,是面对对象的语言UNION ALLSELECT 7,PHP学起来比JAVA要容易点,PHP学起来比JAVA要容易点UNION ALL SELECT 8,ASP比PHP用起来简单,PHP比JAVA用起来简单,ASP比PHP用起来简单,PHP比JAVA用起来简单UNION ALLSELECT9,FLEX做出来的界面好漂亮,而且可以和ASP,PHP,JAVA结合使用,FLEX做出来的界面好漂亮,而且可以和AS

4、P,PHP,JAVA结合使用UNION ALLSELECT 10,ASP,PHP用来做网页都不错,ASP,PHP语言用来做网页都不错-检查数据库pubs是否支持全文索引,如果不支持if(select databaseproperty(test,isfulltextenabled)=0beginprintis disabled-打开数据库全文索引的支持execute sp_fulltext_databaseenableprintdone enabledendelseprintis enabled- 数据库关闭全文检索Exec sp_fulltext_databasedisable-本文来源于WE

5、B开发网原文链接:http:/ sp_fulltext_catalogft_test,create-为t_test表建立全文索引数据元,PK_t_test是主键所建立的唯一索引,可由sp_helpt_test得知sp_helpt_testexecute sp_fulltext_tablet_test,create,ft_test,PK_t_test-设置全文索引列名exec sp_fulltext_columnt_test,CONTENT,addexec sp_fulltext_columnt_test,title,add-建立全文索引exec sp_fulltext_tablet_test,

6、activate-填充全文索引目录exec sp_fulltext_catalogft_test,start_fullprint CONVERT(varchar(12),getdate(), 114 )-检查全文目录填充情况WHILE FulltextCatalogProperty(ft_test,PopulateStatus)-如果全文目录正处于填充状态,则等待秒后再检测一次WAITFOR DELAY0:0:1ENDprint CONVERT(varchar(12),getdate(), 114 )printFulltext ok-停止全文目录的填充Exec sp_fulltext_cata

7、logft_test,stop/*查看数据库所有的全文目录*/select*from sys.fulltext_catalogs/* 查看所有用到全文索引的表*/exec sp_help_fulltext_tables-全文目录填充完成后,使用全文目录检索-使用contains和freetextselect title,content from t_testwhere contains(content,网页 and 漂亮)goselect title,content from t_testwhere freetext(content,语言网页漂亮)goselect title,content

8、from t_testwhere freetext(title,java 语言)goselect title,content from t_testwhere contains(title,java)goselect title,content from t_testwhere freetext (*,语言)-使用contains关键字进行全文索引-1.前缀搜索select*from t_test where contains(title,界*)/*-注意这里的* 返回结果会是chinax chinay chinaname china-返回前缀是china的name-如果不用“”隔开那么系统会

9、都城contains(name,china*) 与china* 匹配*/-2.使用派生词搜索select*from t_test where contains(*,formsof(inflectional,foot)/* 出来结果可能是foot feet (所有动词不同形态名词单复数形式)*/-3.词加权搜索select*from t_test where contains(value,ISABOUT(performanceweight(.8)/*全值用-1的一个数字表示表示每个词的重要程度*/-一般情况下,在代码中处理全文索引,会用contains和freetext关键字就可以了。-但我们可

10、能经常会忽略权重的判断,我觉得适当的加一些权重判断还是挺有作用的。-比如查询新闻时,关键在标题中的权重比在内容中的高,这样search处理的结果可能更贴近用户的需要。SELECT*FROMdbo.NEWS_LANGwhere pub_date=2021-06-13and(contains(title,ISABOUT (美联航weight (.8)or contains(body,ISABOUT (美联航weight (.5)-4.临近词搜素select*from t_test where contains(title,java near 网页)/* 出来的结果是“a”单词与“b”单词临近的do

11、cument可以写成contains(document,a b)*/-5.布尔逻辑搜素select*from t_test where contains(content,flex or 比)select*from t_test where contains(content,点)/*返回既包含A 又包含B单词的行当然这里的AND 关键字还有换成OR ,AND NOT 等*/-你还可以使用RREETEXT 进行模糊搜索-任意输入文本全文索引自动识别重要单词然后构造一个查询select*from t_test where freetext(title,zhubajie chi xi gua !)-=

12、-对全文索引性能影响因素很多包括硬件资源方面还有SQL 自身性能和MSFTESQL服务的效率等方面-它的搜索性能有方面: 全文索引性能和全文查询性能/*在库TEST上建立全文索引*/use testcreate table poofly(id int not null,name varchar(10)go/* 首先创建一个唯一索引,以便全文索引利用*/create unique clustered index un_ky1on poofly(id)/*创建全文目录*/create FULLTEXT CATALOG FT1AS DEFAULT/*C创建全文索引*/create FULLTEXT INDEX ON poofly(NAME)key index un_ky1ON FT1/*修改全文目录*/alter FULLTEXT CATALOG FT1REBUILD/*删除全文目录FT(含有全文索引时候不能删除)*/drop fulltext catalog ft

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1