SQL 2008 的 iFTS 對於中文的字詞較容易 debug 了

CREATE DATABASE iFTS
GO
USE iFTS
GO

CREATE TABLE tbNews (PK INT IDENTITY NOT NULL,News NVARCHAR(MAX))
ALTER TABLE tbNews ADD CONSTRAINT pk PRIMARY KEY(PK)
GO
CREATE FULLTEXT CATALOG iFTS_News_FTCat;

CREATE FULLTEXT INDEX ON dbo.tbNews
(
        News                         –全文檢索欄位名稱
)
    KEY INDEX pk
    ON iFTS_News_FTCat
    WITH CHANGE_TRACKING AUTO
GO

INSERT tbNews VALUES
(N’海軍陸戰隊中被稱為「黑衣部隊」的特勤部隊,在高雄縣那瑪夏鄉受創最重的民族村救災,因挖土機無法挺進,他們以鼻嗅聞,拿鏟子、臉盆,一鏟一鏟地接力開挖,先後找到三具遺體。民族村有五人死亡,尚有廿一人失蹤。「黑衣部隊」的九名官兵,十日即進駐那瑪夏鄉救災,近日更深入災情嚴重的民族村搜尋罹難者,由於民族村道路中斷,挖土機無法挺進,所有開挖全賴徒手完成。九名官兵前天起,天亮即自民權村渡溪前進民族村,在烈日及大雨交織的天氣下,協助開挖罹難者大體。那瑪夏民族村很多房子,土石流埋到一樓高,當時逃不出的鄉民,多數在一樓,徒手搜尋開挖作業難度倍增。因為已經無法判定遺體的位置,黑衣部隊憑自己的嗅覺來定位挖掘。「看他們拿著鏟子、臉盆,一鏟一鏟地接力開挖,又以鼻子嗅聞罹難者可能方位,辛勞的背影,令人動容。」高雄長庚醫療隊成員之一的王文志感動地說。鄉公所技士也說:「這兩天,這支訓練有素的部隊,中午都是升柴火煮泡麵果腹,操勞數日,從不喊累。」邱技士說,連日來,黑衣部隊天一亮就出發,由北往南挨家挨戶逐樓層搜索,前天找到兩具遺體,昨天一具,本來認為還可找到一具,開挖時因大雨作罷。’),
(N’研究發現,美國首都華盛頓流通的美元紙鈔最毒,95%含有微量古柯鹼毒品,比兩年前提高20%,原因可能和全球經濟衰退,大家壓力升高,增加吸毒有關。達特茅斯麻州大學針對五個國家、30多個都市使用的美元現鈔,進行歷來最大規模的研究,發現美國和加拿大都市使用的紙鈔古柯鹼含量都提高,高達85至90%的紙鈔都含少量古柯鹼。巴西排名第三,80%紙鈔含毒,其後為日本的20%,中國大陸紙鈔含毒量最低,只有12%鈔票受到古柯鹼污染。美鈔含微量古柯鹼,和吸毒的人把古柯鹼放在捲成圓筒狀的紙鈔中,再用鼻子吸進去有關,也和鈔票疊在一起有關。除了華盛頓,美國其他城市如巴爾的摩、波士頓和底特律的紙鈔古柯鹼含量也特別高。主持研究的左躍剛博士說:「我很驚訝的發現鈔票上的古柯鹼愈來愈多。我不知道為什麼增加會這麼明顯,但可能跟經濟衰退有關係,碰到壓力的人求助古柯鹼。」鹽湖城收集到的鈔票是美國最乾淨的紙鈔,鹽湖城是摩門教總部所在地。左躍剛兩年前做過類似研究,當時發現67%的美國紙鈔含微量古柯鹼。左躍剛和報告共同作者認為,紙鈔古柯鹼含量增加,代表吸食毒品的人增加。研究人員估計,美國古柯鹼年銷售額高達700億美元,每年大約有600萬美國人吸食古柯鹼,每年消耗的古柯鹼介於259至447公噸間。癮君子喜歡用5美元、10美元、20美元和50美元的鈔票吸毒,不喜歡用1美元和100美元鈔票,癮君子用過的鈔票有很多管道傳到其他鈔票上,例如,收銀機、自動提款機、點鈔機和日常交易。鈔票上的毒品含量介於0.006毫克到1,240毫克間,如果拿到含有1,240毫克古柯鹼的鈔票,或許會有感覺,因為這樣大約等於50粒砂子的重量。’)

SELECT * FROM tbNews WHERE CONTAINS(News,N’高雄’)
SELECT * FROM tbNews WHERE CONTAINS(News,N’陸戰’)  –找不到,因為拆字詞時,是"陸戰隊",而非"陸戰"

–呈現所有的字詞
SELECT * FROM sys.dm_fts_index_keywords(db_id(‘iFTS’), object_id(‘dbo.tbNews’))

–呈現搜尋時如何拆字
SELECT * FROM sys.syslanguages WHERE name=N’繁體中文’
SELECT * FROM sys.dm_fts_parser(N’海軍陸戰隊中被稱為「黑衣部隊」的特勤部隊,在高雄縣那瑪夏鄉受創最重的民族村救災’,1028,0,0)

CREATE FULLTEXT STOPLIST myStopList;
ALTER FULLTEXT STOPLIST myStopList ADD N’了’ LANGUAGE ‘Traditional Chinese’;

SELECT * FROM sys.fulltext_stoplists
SELECT * FROM sys.fulltext_stopwords
ALTER FULLTEXT INDEX ON tbNews SET STOPLIST myStopList
ALTER FULLTEXT INDEX ON [dbo].[tbNews] START FULL POPULATION
–加入了 stop list 後,既有的索引值不受影響,但查詢時,自動跳過含有 stop list 的值
SELECT * FROM tbNews WHERE CONTAINS(News,N’了’)
SELECT * FROM sys.dm_fts_index_keywords(db_id(‘iFTS’), object_id(‘dbo.tbNews’)) WHERE display_term=N’了’

–重新 population 時,會參考 stop list
TRUNCATE TABLE tbNews
INSERT tbNews VALUES
(N’海軍陸戰隊中被稱為「黑衣部隊」的特勤部隊,在高雄縣那瑪夏鄉受創最重的民族村救災,因挖土機無法挺進,他們以鼻嗅聞,拿鏟子、臉盆,一鏟一鏟地接力開挖,先後找到三具遺體。民族村有五人死亡,尚有廿一人失蹤。「黑衣部隊」的九名官兵,十日即進駐那瑪夏鄉救災,近日更深入災情嚴重的民族村搜尋罹難者,由於民族村道路中斷,挖土機無法挺進,所有開挖全賴徒手完成。九名官兵前天起,天亮即自民權村渡溪前進民族村,在烈日及大雨交織的天氣下,協助開挖罹難者大體。那瑪夏民族村很多房子,土石流埋到一樓高,當時逃不出的鄉民,多數在一樓,徒手搜尋開挖作業難度倍增。因為已經無法判定遺體的位置,黑衣部隊憑自己的嗅覺來定位挖掘。「看他們拿著鏟子、臉盆,一鏟一鏟地接力開挖,又以鼻子嗅聞罹難者可能方位,辛勞的背影,令人動容。」高雄長庚醫療隊成員之一的王文志感動地說。鄉公所技士也說:「這兩天,這支訓練有素的部隊,中午都是升柴火煮泡麵果腹,操勞數日,從不喊累。」邱技士說,連日來,黑衣部隊天一亮就出發,由北往南挨家挨戶逐樓層搜索,前天找到兩具遺體,昨天一具,本來認為還可找到一具,開挖時因大雨作罷。’),
(N’研究發現,美國首都華盛頓流通的美元紙鈔最毒,95%含有微量古柯鹼毒品,比兩年前提高20%,原因可能和全球經濟衰退,大家壓力升高,增加吸毒有關。達特茅斯麻州大學針對五個國家、30多個都市使用的美元現鈔,進行歷來最大規模的研究,發現美國和加拿大都市使用的紙鈔古柯鹼含量都提高,高達85至90%的紙鈔都含少量古柯鹼。巴西排名第三,80%紙鈔含毒,其後為日本的20%,中國大陸紙鈔含毒量最低,只有12%鈔票受到古柯鹼污染。美鈔含微量古柯鹼,和吸毒的人把古柯鹼放在捲成圓筒狀的紙鈔中,再用鼻子吸進去有關,也和鈔票疊在一起有關。除了華盛頓,美國其他城市如巴爾的摩、波士頓和底特律的紙鈔古柯鹼含量也特別高。主持研究的左躍剛博士說:「我很驚訝的發現鈔票上的古柯鹼愈來愈多。我不知道為什麼增加會這麼明顯,但可能跟經濟衰退有關係,碰到壓力的人求助古柯鹼。」鹽湖城收集到的鈔票是美國最乾淨的紙鈔,鹽湖城是摩門教總部所在地。左躍剛兩年前做過類似研究,當時發現67%的美國紙鈔含微量古柯鹼。左躍剛和報告共同作者認為,紙鈔古柯鹼含量增加,代表吸食毒品的人增加。研究人員估計,美國古柯鹼年銷售額高達700億美元,每年大約有600萬美國人吸食古柯鹼,每年消耗的古柯鹼介於259至447公噸間。癮君子喜歡用5美元、10美元、20美元和50美元的鈔票吸毒,不喜歡用1美元和100美元鈔票,癮君子用過的鈔票有很多管道傳到其他鈔票上,例如,收銀機、自動提款機、點鈔機和日常交易。鈔票上的毒品含量介於0.006毫克到1,240毫克間,如果拿到含有1,240毫克古柯鹼的鈔票,或許會有感覺,因為這樣大約等於50粒砂子的重量。’)
SELECT * FROM sys.dm_fts_index_keywords(db_id(‘iFTS’), object_id(‘dbo.tbNews’)) WHERE display_term=N’了’

若要逐字拆,而不要有詞,可參考另外一篇 blog:http://byronhu.spaces.live.com/blog/cns!BF14192BD27975CB!1119.entry

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s

%d 位部落客按了讚: