zoukankan      html  css  js  c++  java
  • 全文索引学习

    create table products
    (
        pid int primary key,
        [no] varchar(100) unique not null,
        pname varchar(100),
        shijian timestamp
    )
    insert products select 1,'pro1','张三'
    insert products select 2,'pro2','李四'
    insert products select 3,'pro3','王五'
    insert products select 4,'pro4','赵六'
    insert products select 5,'pro5','楚七'
    insert products select 6,'pro6','康璐妮'
    insert products select 7,'pro7','文胸'
    insert products select 8,'pro8','内衣aa'
    insert products select 9,'pro9','456内衣AA'
    insert products select 10,'pro10','wqaa'
    insert products select 11,'pro11','中国aa'
    insert products(pid,[no],pname) select 11189,'pro1333','老梅aa'
    insert products(pid,[no],pname) select 11190,'pro1334','李aa'
    insert products(pid,[no],pname) select 11195,'pro133336','刚aa'
    insert products(pid,[no],pname) select 11196,'pro133337','特aa'
    insert products(pid,[no],pname) select 111907,'pro133338','丽丽aa'

    declare @i int
    set @i=1
    while(@i<100000)
    begin
        set @i=@i+1
        insert products select @i,'P'+cast(@i as varchar(10)),'BB'+cast(@i as varchar(10)),null
    end

    select * from products
    delete products where pid<180000
    drop table products


    --打开数据库全文索引的支持
    execute sp_fulltext_database 'enable'
     go
    --建立全文目录ft_titles
    execute sp_fulltext_catalog 'myfulltext','create','E:\FullText'   --全文目录名,操作方式,路径
     go

    --为products表建立全文索引数据元,UPKCL_titleidind是主键所建立的唯一索引,可由sp_help products得知
    execute sp_fulltext_table 'products','create', 'myfulltext', 'PK__products__1367E606'  --表名,操作方式,全文目录名,唯一键键名(主键也可以)
    go
    --execute sp_fulltext_table 'products','drop' 删除全文索引对表标记


    --设置全文索引列名
    exec sp_fulltext_column 'products', 'no', 'add'
    go
    exec sp_fulltext_column 'products', 'pname', 'add'
    go


    --建立全文索引
    exec sp_fulltext_table 'products', 'activate' --激活表,也就是将表注册在文件系统中的全文目录
    exec sp_fulltext_table 'products', 'start_full' --使用表的完全填充
    exec sp_fulltext_table 'products', 'start_incremental' --使用表的增量填充
    --下面两句是启用更改跟踪,如果对表添加完数据后,启用更改跟踪,全文索引会自动进行完全填充
    exec sp_fulltext_table 'products', 'start_change_tracking' --启动全文索引的增量填充。如果该表没有时间戳(猜测其实就是表里没有timestamp列),那么就启动全文索引的完全填充。开始跟踪表发生的变化。
    exec sp_fulltext_table 'products', 'Start_background_updateindex'

    --下面两句是停止更改跟踪
    exec sp_fulltext_table 'products', 'stop_change_tracking'
    exec sp_fulltext_table 'products', 'stop_background_updateindex'
    go


    --填充全文索引目录
    --使用完全填充
    exec sp_fulltext_catalog 'myfulltext', 'start_full'--使用目录的完全填充
    go
    --使用增量填充,条件是全文索引的表中存在一个 timestamp 列
    exec sp_fulltext_catalog 'myfulltext', 'start_incremental'
    --从文件系统中删除现有的全文目录,然后重建全文目录,并使该全文目录与所有带有全文索引引用的表重新建立关联。也就是删除全文目录利多索引
    exec sp_fulltext_catalog 'myfulltext', 'Rebuild'
    go

    --查询全文索引目录填充状态
    declare @t int
    select fulltextcatalogproperty('myfulltext','populateStatus')

    select fulltextcatalogproperty('myfulltext','PopulateCompletionAge')



    select * from products
    where contains(pname,'aa')


    declare @beginDate DateTime,@endDate DateTime
    set @beginDate=GETDATE()
    declare @i int
    while(1=1)
    begin
        select @i=fulltextcatalogproperty('myfulltext','populateStatus')
        if(@i=0)
        begin
            set @endDate=GETDATE()
            break
        end
    end
    print DATEDIFF(mm , @beginDate , @endDate )
    print DATEDIFF(ss , @beginDate , @endDate )

    --使用增量填充,耗费13秒左右
    --使用完全填充,耗费28秒左右
    select fulltextcatalogproperty('myfulltext','populateStatus')

    select * from products
    where contains(pname,'62')

    select * from products
    where pname like '%62%'

     

  • 相关阅读:
    CDQ分治·学习笔记
    高斯消元板子
    [HEOI2012]朋友圈
    [CTSC2008]祭祀
    Medium | LeetCode 140. 单词拆分 II | 回溯(递归)
    Hard | LeetCode 212. 单词搜索 II | 回溯 + 前缀树
    Medium | LeetCode 131. 分割回文串 | 回溯 + 动态规划预处理
    Hard | LeetCode 329. 矩阵中的最长递增路径 | 矩阵+DFS
    Hard | LeetCode 76. 最小覆盖子串 | 滑动窗口
    Medium | LeetCode 130. 被围绕的区域 | 矩阵 + DFS
  • 原文地址:https://www.cnblogs.com/mxw09/p/1886767.html
Copyright © 2011-2022 走看看