none
SQL 2008 & SQL 2005 中文全文索引問題 RRS feed

  • 問題

  • 在使用 SQL 2008 或是 SQL2005 的中文全文索引時會發生幾個很嚴重的問題:

    1.檢索不到資料:

     

    Code Snippet

    CREATE TABLE [dbo].[TempFull](

            [SN] [int] IDENTITY(1,1) NOT NULL,

            [BODY] [nvarchar](max) NULL,

     CONSTRAINT [PK_TempFull] PRIMARY KEY CLUSTERED ([SN] ASC) WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

    ) ON [PRIMARY]

     

    INSERT INTO [TempFull]([BODY]) VALUES (N'用以防呆')

    做完全文索引後

    SELECT * FROM dbo.[TempFull] WHERE CONTAINS(*, '"防呆"')

     

     

     

    查詢結果為 0 筆! 諸如此類會查不到資料的問題層出不窮! 此僅為其中一例

    而且在 SQL 2000 是不會發生此問題!

     

    2.檢索結果集神秘的消失:

    使用中文全文檢索資料時~資料的結果筆數在查詢某些特定的關鍵字時

    第一次查詢可能有 105 篇文件符合條件

    可是用同一個 Connection 同一個檢索條件重複按下 F5 執行數次

    在第三次或是第四次以後查詢就會突然變成譬如 13~

    從此以後所有 Connection 查詢該關鍵字就都僅剩下 13

    要讓其恢復第一次的查詢結果必須重啟 SQL SERVER (有時需重起數次)

    但是只要重複上述動作~在第 N 次檢索後結果又會縮減成少數篇數

    然而該第三或四次以後的結果集在不同的 Server 上建置會產生不同的結果

    在 SQL 2000 也是不會發生此問題!

     

    不曉得是否有人也遇過相同問題?

    另外我也嘗試想將SQL2005 或 SQL2008 全文索引元件換成 SQL2000

    有些人討論過在 x86 Server 也許有機會!

    但我用的是 x64 Server 似乎也沒人討論!

    煩請各位先進協助問題的解決!感激不盡!

     

    2008年10月21日 上午 02:41