建全文索引的簡單例子

2021-04-24 18:36:43 字數 2805 閱讀 1351

簡單的舉個例子:

建立全文索引:

write by tootto(csdn)

sql code

create

fulltext

index

ontesttable

(

[name],

[description

]language

3076

--中文語言索引id

)

自己寫乙個自定義函式,dbo.getfulltextsearchtext     

引數:varchar(***x)

輸出:varchar(***x)

作用:將輸入字串轉換成全文索引查詢格式. 這個很好寫,就不浪費時間了。

如輸入引數是:'你好', 則輸出結果為: "你好*" or "你好" (注意輸出結果要完全符合輸出結果的格式,要帶引號,星號還有 or,要完全一樣)

具體全文索引查詢格式參考:http://msdn.microsoft.com/en-us/library/ms187787.aspx

全文索引查詢,分頁,排序儲存過程:

sql code

create

procedure

testfulltextsearch

(

@testtext1

nvarchar

(200

),

@testtext2

nvarchar

(200

)

--標準分頁引數

@pagenumber

int,

@roweachpage

int,

@mincurrentpagerowid

int,

@maxcurrentpagerowid

int,

@sortcolumn

nvarchar

(150

),

@sortorder

bit)

asbegin

--定義最終結果表

declare

@resulttable

table

( id

int,

[name

]nvarchar

(1000

),

[description

]nvarchar

(1000))

insert

into

@resulttable

select

id,

[name],

[description

]from

dbo.testtable tt

where

@testtext1

isnull

orcontains

(tt.name, dbo.getfulltextsearchtext(

@testtext1

)) --

全文索引查詢

and@testtext2

isnull

orcontains

(tt.description, dbo.getfulltextsearchtext(

@testtext2

))--

分頁 排序

select

@mincurrentpagerowid=(

@pagenumber

*@roweachpage)+

1,@maxcurrentpagerowid=(

@pagenumber+1

) *@roweachpage

if@sortorder=0

--公升序

select

*from

(

select

row_number()

over

(order

bycase

@sortcolumn

when'id

'then

id end

when

'name

'then

name

end)

asrowid,

*from

@resulttable

) ast

where

rowid

between

@mincurrentpagerowid

and@maxcurrentpagerowid

else

--降序

select

*from

(

select

row_number()

over

(order

bycase

@sortcolumn

when'id

'then

id end

desc

when

'name

'then

name

enddesc

) as

rowid,

*from

@resulttable

) ast

where

rowid

between

@mincurrentpagerowid

and@maxcurrentpagerowid

end

mysql全文索引的坑 MySQL全文索引問題

我有乙個包含以下資料的 文章 mysql select from articles id title body 1 mysql tutorial dbms stands for database 2 how to use mysql well after you went through a 3 o...

oracle全文索引的簡單配置

1 建立資料儲存定義 datastore 使用多列資料儲存在多列上建立全文索引 begin ctx ddl.create preference infogrid com datastore multi column datastore ctx ddl.set attribute infogrid c...

建立全文索引

建立全文索引 在進行全文檢索之前,必須先建立和填充資料庫全文索引。為了支援全文索引操作,sql server 7.0新增了一些儲存過程和transact sql語句。使用這些儲存過程建立全文索引的具體步驟如下 括號內為呼叫的儲存過程名稱 1.啟動資料庫的全文處理功能 sp fulltext data...