精华内容
下载资源
问答
  • 数据库优化之中文分词:
    2018-05-04 16:18:23

    1.中文分词的原因(重点)
    普通的模糊搜索,检索数据的时候,用不到索引,全文检索速率很慢
    例如:SELECT * FROM goods where title like "%复古%";
    算了 算了 算了算了算了算了算了。。。。。。。
    2.中文分词的原理
    将大段的中文拆分成多个小的单词
    将单词插入到一张具有索引的表中. (索引添加在单词的列上)
    检索时, 首先通过关键字检索单词表, 然后再通过结果中的id列表, 获取具体的数据

    
        select * from goods_words where word = '复古';
        select * from goods where id in (5,13,4)
    3.scws例子
      <?php
    //test.php
    //
    // Usage on command-line: php test.php <file|textstring>
    // Usage on web: 
    header('content-type:text/html;charset=utf-8');
    
    //声明字符串
    $text = <<<EOF
    孔子主张“为政以德”,用道德和礼教来治理国家是最高尚的治国之道。这种治国方略也叫“德治”或“礼治”。德治就是主张以道德去感化教育人。儒家认为,无论人性善恶,都可以用道德去感化教育人。而所谓“礼治”,即遵守严格的等级制度,君臣、父子、贵贱、尊卑都有严格的区别。
    EOF;
    
    // 引入类文件
    require 'pscws4.class.php';
    // 实例化
    $cws = new PSCWS4();
    //设置字符集
    $cws->set_charset('utf8');
    //设置词典
    $cws->set_dict('etc/dict.utf8.xdb');
    //设置utf8规则
    $cws->set_rule('etc/rules.utf8.ini');
    //忽略标点符号
    $cws->set_ignore(true);
    //传递字符串
    $cws->send_text($text);
    //获取权重最高的前十个词
    $ret = $cws->get_tops(10);
    //获取全部的分词结果
    $ret=$cws->get_result();
    //打印
    var_dump($ret);
    //关闭
    $cws->close();
    ?>
    4.scws分词工具  分词词典 工具 
    5.分词执行
    6.权限管理(重点)
      在root下进行添加用户操作和给其它用户加权限
      (1)用户管理
    创建用户 ->root
    Insertintomysql.user(Host,User,Password)values("localhost","lele3",password("lele3"));
      创建完毕之后要刷新  flush privileges;
    查看用户列表
    select user from mysql.user group by User;
    
     (2)权限分配(在root用户下操作)
      grant 权限 on 数据库.数据表 to 用户@localhost identified by '用户密码';
      权限列表
      create 建库建表权限
      drop  删库删表权限
    insert 数据插入权限
      delete  数据删除权限
      update  数据修改权限
      select 数据读取权限
      index 索引操作权限
      *.*  数据库 数据表 =>o2o_14.*  o2o_14.user
      Lele4  用户名
      分配权限之后:刷新权限  flush privileges;
    (3)查看权限
      登录当前用户查看当前用户(自己)权限:
    show grants;
    show grants;
    登录root查看其他 MySQL 用户权限:
    show grants for 用户@localhost;
    show grants for 用户@localhost;
    (4)权限夺回 (在root下进行)
      revoke 权限 on 数据库.数据表 from 用户名@localhost;(需要谨慎)
    刷新权限flush privileges;
       注意: revoke 用户权限后,该用户只有重新连接 MySQL 数据库,权限才能生效。
    (5)注意
    Test  information_schema数据库和test前缀的数据库不受权限控制
    授权完毕之后要刷新权限   flush privileges;
    
    7.数据库备份和还原(了解)
    
    7.1 数据库备份之逻辑备份
    使用MYSQLDUMP命令备份
    (1)使用mysqldump备份单个数据库中的所有表
    mysqldump -u root -h localhost -p 数据库 >/tmp/caijun.sql
    (2)使用mysqldump备份数据库中的某个表
    mysqldump -u root -h localhost -p caijun stu >/tmp/stu.sql
    (3)使用mysqldump备份多个数据库
    如果要使用mysqldump备份多个数据库,需要使用--databases参数。
    使用--databases参数之后,必须指定至少一个数据库的名称,多个数据库名称之间用空格隔开
    mysqldump -u root -h localhost -p --databases 数据库1 数据库2 >/tmp/caijuno2o_13.sql 
    (4)使用--all-databases参数备份系统中所有的数据库
    mysqldump -u root -h  localhost  -p --all-databases >/tmp/alls.sql
    使用数据库管理工具快速备份
     navicat
    7. 2数据库逻辑还原
    (1)使用mysql命令进行还原
    还原表:
    mysql -u root -p 数据库 </tmp/stu.sql
    还原库
    执行语句之前我们必须建好数据库,如果不存在恢复过程将会出错。
    mysql -u root -p caijun </tmp/caijun.sql
    (2)如果已经登录mysql,那么可以使用source命令导入备份文件
    执行source命令前必须使用use 语句选择好数据库,不然会出现ERROR 1046(3D000):NO DATABASE SELECTED 的错误
    命令:
    mysql> use caijun;
    Database changed
    mysql> source  /tmp/caijun.sql 注意空格
    使用数据库管理工具恢复数据  navicat
    8.日志操作(重点)
    Mysql 日志操作可以快速的记录mysql的操作信息
      打开mysql配置文件,设置日志记录
      错误日志(在启动或者关闭数据库信息的时候,出现错误,会记录一些日志信息) log-error=/tmp/mysql-error.log
    查询日志(在执行增删改查的时候,会把日志信息记录)  log=/tmp/mysql-query.log
    慢查询日志  long_query_time=1  log-slow-queries=/tmp/mysql-slow.log
    二进制日志   log-bin=1

    转载于:https://blog.51cto.com/13346331/2112745

    更多相关内容
  • 中文快速分词(三种快速分词:键值数据库分词,文本数据库分词,词性数据库分词) 中文词性分析(词性数据库) 中文词汇分类(键值数据库) 意志力分析(词性数据库) 中文量化分析(词性数据库) 中文情感正负向...
  • 1.为什么需要数据库分词查询 假设有一个数据库表,表中有一个title字段 table1假如有300万的数据 id为主键,title也设置了索引 id title 1 这是计算机,和计算机相关,电脑...

    1.为什么需要数据库分词查询

     假设有一个数据库表,表中有一个title字段
    table1 假如有300万的数据
    id为主键,title也设置了索引
    id title
    1 这是计算机,和计算机相关,电脑相关
    2 这个标题是数据库,与专利数据库有关系
    3 这个标题是与淘宝user数据库
    ... ...................................................

    假如我们需要通过title中的某些字段去进行查询,如果不分词查询,那么这样的缺点如下
    1. 查询速度上的问题,如果我们 想查询title中 有 数据库 的字段的所有内容
    我们只能用   select * from table1 where title like '%数据库%'
             注意: like %xxx% 这样查询,将会是没有索引的查询,查询的速度会非常的慢,40万的数据,这样查询需要的时间是用 = 查询的几千倍
    使用like'%%' 速度非常慢,在需要大量查询的时候,性能上会出现很大的问题
               2. 查询的准确性问题,假如我们想查询有 专利数据库 的字段,但是,我们如果打错了,打成了查询 '专利的数据库',多了一个'的'字,
        查询的sql 语句为 select * from table1 where title like '专利的数据库' 
      这样,我们是查询不到id=2的这一条数据的
    如果使用分词查询,上述问题将会得到解决
    我们将关键字进行分词,建立关键字与id的关系,同时建立索引
    比如我们将title进行分词,得到如下的表(注:下表我只列出id=2的分词部分)
    keywordsearch1表 id为主键,keyword设置索引
    id
    keyword
    ......
    xxxxxxx
    2
    标题
    2
    数据库
    2
    专利
    2
    关系
    .......
    xxxxxxxxx
    1. 我们如果要查询tutle中有数据库的。可以直接用
    select * from table where id in(select id from keywordsearch1 where keyword='数据库')
    或者程序中,先在分词表中查询出id,再用一个for循环,循环select * from table where id =xxx
    这样一来,查询都是有索引的,速度会非常的迅速.速度问题解决了
    2. 对于准确度问题,比如搜索 专利的数据库
    程序会先和分词的方法一样,将其分成 专利、数据库 我们查询的时候
    就分别keywordsearch1表去查询这两个对应的id,取得他们的交集,然后再根据id去主表中查询相应的数据,这样,就保证了我们能够得到我们想要的数据了

    转载于:https://www.cnblogs.com/cuihongyu3503319/p/9272737.html

    展开全文
  • lucene引擎和sqlite数据库分词查询,统计单词频率,统计重点单词,重点句子
  • 易语言分词例程,通过易语言匹配数据库词库,按照词性将语句进行分割,还能识别数据库中没有记录的词,并定义为“未分词”。
  • java分词jar包.zip

    2019-08-31 20:48:21
    本资源的是java对分词提供的jar包,一共包括4个,来进行java分词处理,分别是IKAnalyzer2012_u6.jar,lucene-analyzers-3.6.1.jar,lucene-core-3.6.1.jar和lucene-highlighter-3.6.1.jar。
  • 本文研究对文章进行分词以提高检索的准确度和查询效率。根据自己的编程语言选择一款合适的中文分词组件,我在 ASP.NET 平台下选择了 jieba.NET。设想的步骤:分别对文章标题、标签、正文进行分词,保存到一张分词表...

    传统的 LIKE 模糊查询(前置百分号)无法利用索引,特别是多个关键词 OR,或在多个字段中 LIKE,更是效率低下。本文研究对文章进行分词以提高检索的准确度和查询效率。

    根据自己的编程语言选择一款合适的中文分词组件,我在 ASP.NET 平台下选择了 jieba.NET。

    设想的步骤:分别对文章标题、标签、正文进行分词,保存到一张分词表上。该表把“文章 ID”和“词语”设为联合主键,用 3 个字段记录该词语分别在标题、标签、正文中出现的次数,另外还可以按需要添加文章分类 ID、文章创建时间等字段。

    当用户输入关键词进行检索时,先将关键词分词,在分词表中用 in 语法查询到所有相关的记录;

    使用 group by 语法对查询结果按文章 ID 分组;

    关键在排序上,理想的排序是:

    a. 先按搜索关键词中不同词语的出现量排序,即:若搜索关键词分词后是 3 个词语,那么全部包含这 3 个词的文章优先,只匹配其中 2 个词语的其次;

    b. 再按搜索关键词在文中累计出现的次数排序(考虑权重),即:我们先假定标题和标签的分词权重为 5(意思是一个分词在标题中出现 1 次相当于在正文中出现 5 次),那么累加每个分词在标题、标签、正文的权重次数,得分高的优先;

    c. 再进一步考虑文章的发布时间,即将文章的发布时间距离最早一篇文章的发布时间(或一个较早的固定日期)相隔的天数,乘以一个系数加入到权重中,这个系数按不同文章分类(场景)不同,比如新闻类的大一点,情感类的小一点)。乘以系数时一篇文章只加权一次,不要加权到每个分词。

    d. 根据需求还可以加入文章热度(阅读数)的权重。

    根据上述逻辑对一个有 18 万篇文章的内容管理系统进行改造,循环所有文章进行分词统计,得到一张包含 5 千万条记录的分词表(系统中部分文章只有标题、标签和外链,没有正文,否则更多)。

    由于查询中包含 in、group by、count、sum、运算等,再若分类是无级限的,即文章分类 ID 也是 in 查询,然后分页,即使创建索引,效率也只能呵呵了。

    简化:

    不对正文进行分词;

    不按权重进行排序;

    那么分词表的记录数降到 250 万条,同样用 in 查询分词,先按搜索关键词中不同词语的出现量排序,再按发布时间排序,分页后获得一页的文章 ID 集合,再去文章表中 in 获取详细信息(注意保持一页中的排序)。

    添加相关索引后,查询一个包含 3 个分词的关键词仅需十几毫秒。因为 in 的内容比较离散,所以索引的利用率比较高。

    谢谢赞赏 ♥

    6e8abd549c150ef67819ab3cdf9e2d0b.png

    388ada51a6d8f546f960e50569971cce.png

    展开全文
  • 记录超大容量辞海词典词库 可以自行导入数据库后用于分词 辞海词典。 Access数据库。 含380578条数据。 含各类词语解释、注音和例句。
  • 向solr索引库中进行数据库分词信息同步1、报错信息2、查看字段类型2.1、数据库中字段类型:2.2、实体类中的字段类型2.3、solr配置文件schema.xml中的分词业务域字段类型3、解决异常 1、报错信息 可以看出是ep_price...

    1、报错信息

    在这里插入图片描述
    可以看出是ep_price字段类型不匹配的错误!

    2、查看字段类型

    2.1、数据库中字段类型:

    在这里插入图片描述

    2.2、实体类中的字段类型

    在这里插入图片描述

    2.3、solr配置文件schema.xml中的分词业务域字段类型

    在这里插入图片描述

    3、解决异常

    可以很清楚的看出,数据库和实体类中ep_price字段的类型分别是decimalBigDecimal类型,而在solr的schema.xml文件中ep_price字段类型为long,很显然这不合适。

    但是在solr中没有decimal类型,我们在数据库中的ep_price字段类型是decimal,而且带两个小数点,使用long长整型是不合理的,为了解决这个问题,我们可以在schemal.xml文件中将ep_price字段类型设为double类型,这样就很轻松的解决了。

    在这里插入图片描述

    再次向solr索引库中进行分词信息同步添加测试:

    在这里插入图片描述
    在这里插入图片描述
    妥了!!!

    展开全文
  • i++)//循环数据库里的数据 { string strcon = dt.Rows[i][1].ToString();//标题 strcon += dt.Rows[i][3].ToString();//内容 DateTime strtime = Convert.ToDateTime(dt.Rows[i][4]);//时间 //判断时间 在一天内容...
  • SQL分词查询存储过程

    热门讨论 2013-03-02 12:11:00
    SQL分词查询存储过程,很简单的代码,感兴趣的朋友可以下载看看!
  • jieba分词,连接数据库,分析数据库中的文本,并提取时间、地点、目标,整个完整流程/
  • Java 简易实现分词器功能

    千次阅读 2021-06-13 19:53:17
    搜索功能是具备数据库功能的系统的一大重要特性和功能,生活中常见的搜索功能基本上都具备了分词搜索功能。然而ES功能固然强大,但对于学生或小项目而言整合起来太费人力物力,这时候,若是写一个简易的分词器就会使...
  • sql:mysql:分词

    千次阅读 2020-04-29 15:34:17
    SELECT * FROM tags_table1 t WHERE locate(t.tag_name, "岗位职责:1.参与公司涉及法律事务的业务沟通或谈判,提供专业建议及解决方案;2.主导公司相关业务法律...
  • // 封装好的数据库的基本操作 增 删 改 查 const sql = { // 插入操纵 insert (ColName, insertData) {//所需参数为:ColName:数据库中所需添加的集合名称以及规则,insertData:添加的数据 console.log('11111111')...
  • 缘由是他从来都使用空格来作为分词的分隔符,而对于中文来讲,显然用空格就不合适,需要针对中文语义进行分词。这不,从MySQL5.7开始,MySQL内置了ngram全文检索插件,用来支持中文分词,并且对MyISAM和InnoDB引擎...
  • 如果MySQL数据库是低于5.7版本的,需要备份数据库并且更新为5.7 原理: ngram全文解析器 ngram就是一段文字里面连续的n个字的序列。 ngram全文解析器能够对文本进行分词,每个单词是连续的n个字的序列。 例如,...
  • 支持微信分词算法mmicu,icu分词的sqlite工具。可以较好的进行全文搜索FullTextSearch
  • 武汉达梦数据库股份有限公司成立于2000年,为中国电子信息产业集团(CEC)旗下基础软件企业,专业从事数据库管理系统的研发、销售与服务,同时可为用户提供大数据平台架构咨询、数据技术方案规划、产品部署与实施等...
  • 下文是实例分析了PHP中文分词,这个代码分析了字符串遍历、转换、操作等的技术,PHP实现中文分词功能的具体方法大家都了解吗?需要了解它的朋友可以参考下面的内容。复制代码 代码如下:class NLP{private static $...
  • [数据库]IK分词器的安装与使用0 2020-07-27 22:00:09分词器什么是IK分词器?分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后...
  • MySQL 结巴中文分词插件 SqlJieba 『关键词』MySQL, 插件(Plugin), 中文分词, 结巴分词(Jieba), 全文检索(Full-Text), SqlJieba 使用方法:mysql> create database sqljieba; Query OK, 1 row affected ...
  • 中文分词 最大匹配法

    2013-11-24 11:16:39
    中文分词 最大匹配法
  • 如图: Python之jieba库常用函数 我这个项目是为SEO而服务的,所以我项目中用到最多的函数是jieba.lcut_for_search(str)这个函数,给定一句话或者一个关键词之后,借助jieba库为我分词,然后循环分的词对数据库进行...
  • 15万汉字字典有解释 mdb数据库格 式 可以用作分词匹配15万汉字字典有解释 mdb数据库格式 可以用作分词匹配
  • “创建全文索引 启动服务  在SQL Server配置管理工具中,... 打开需要创建全文目录的数据库-存储-全文目录-右键新建全文目录 用语句创建全文目录  CREATE FULLTEXT CATALOG [FD_HouseSearch]WITH ACCEN...
  • 多一次接口调用和网络传输等缺点,因此这期我们来说明直连数据库的方式来实现热更新 1. 简介 官方github中并没有说明这种方式,所以本身是不支持直连数据库实现热更新的,要实现需要通过修改源码来做到。 虽然直连...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,853
精华内容 16,341
关键字:

数据库分词

友情链接: matlabPyrTools.rar