索引

查询索引源码

≯℡__Kan透↙ 提交于 2020-02-08 05:49:23
//查询索引 @Test public void searchIndex ( ) throws Exception { //1.创建一个Director对象 Directory directory = FSDirectory . open ( new File ( "E:\\Java_Study\\Lucene\\index" ) . toPath ( ) ) ; //2.创建一个IndexReader对象 IndexReader indexReader = DirectoryReader . open ( directory ) ; //3.创建一个IndexSearcher对象,构造方法中的参数indexReader对象 IndexSearcher indexSearcher = new IndexSearcher ( indexReader ) ; //4.创建Query对象,TermQuery Query query = new TermQuery ( new Term ( "name" , "spring" ) ) ; //5.执行查询,得到一个TopDocs对象 //参数1:查询对象 参数2:查询结果返回的最大记录数 TopDocs topDocs = indexSearcher . search ( query , 10 ) ; //6取查询结果的总记录数

视图、触发器、事务、存储过程、内置函数、流程控制、索引

爱⌒轻易说出口 提交于 2020-02-08 04:43:23
视图 什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 如何用视图 create view teacher2course as select * from teacher inner join course on teacher.t.id = course.teacher_id 强调 在硬盘中,视图只有表结构文件,没有表数据文件 视图通常是用于查询,尽量不要修改视图中的数据 drop view teacher2course; 思考:开发过程中会不会去使用视图? 不会!!视图是mysql的功能,如果你的项目里面大量的是用到了视图,那意味着你后期想要扩展某个功能的时候这个功能恰巧又需要对视图进行修改,意味着你需要现在mysql端将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能 触发器 ​ 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 为何要用触发器 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行,就会触发触发器的执行,即自动运行另一段sql代码 创建触发器的语法 # 针对插入 create trigger tri_after

视图、触发器、事务、存储过程、函数

空扰寡人 提交于 2020-02-08 04:40:25
视图 1、什么是视图 ​ 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用就可以 2、为什么要用视图 ​ 如果要频繁使用一张虚拟表,可以不用重复查询 3、如何使用使用视图 create view teacher2course as select * from teacher inner join course on teacher.tid=course.teacher_id 强调 1、在硬盘中,视图只有表结构文件,没有表数据文件 2、视图通常用于查询,尽量不要修改视图的数据 # 删除视图 drop view teacher2course; 记住:开发过程中不会去使用视图,因为视图是mysql的功能,如果项目里面大量的使用到了视图,意味着后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改,意味着需要先在mysql这边将视图修改,然后再去应用程序中修改对应的sql语句,这就涉及到了跨部门沟通的问题,所以通常不会使用视图,而是通过重新修改sql语句来扩展功能 触发器 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 为何要用触发器 ​ 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行 ​ 就会触发触发器的执行,即自动运行另外一段sql代码 创建触发器语法 # 针对插入 create trigger

mysql的 视图、触发器、事务、存储过程、函数、索引与慢查询优化

試著忘記壹切 提交于 2020-02-08 04:32:37
视图假设有两张表学生和老师,学生表(sid,name,tid)关联老师表(tid,tname)创建视图的语法: create view 视图名 as SQL语句 实例:create view student2teacher as select * from student inner join teacher on student.tid=teacher.tid; 创建视图后会产生一个名为 student2teacher 的表,可以直接调用。 思考:开发过程中会不会去使用视图? 不会!视图是mysql的功能,如果你的项目里面大量的使用到了视图,那意味着你后期想要扩张某个功能的时候这个功能恰巧又需要对视图进行修改, 意味着你需要先在mysql这边将视图先修改一下,然后再去应用程序中修改对应的sql语句,这就涉及到跨部门沟通的问题,所以通常不会使用视图, 而是通过重新修改sql语句来扩展功能 强调 1、在硬盘中,视图只有表结构文件,没有表数据文件 2、视图通常是用于查询,尽量不要修改视图中的数据 然后说一个关于删除视图的方法 语法:DROP VIEW 视图名称 DROP VIEW student2teacher 触发器 在某张表对数据进行增删改时自动触发的功能称之为触发器 这类行为一旦执行了就会触发触发器的执行,自动运行另一段的sql代码 创建触发器的语法 # 创建两张表create

Lucene(全文检索)

落爺英雄遲暮 提交于 2020-02-08 03:10:37
Lucene 数据分类 非结构化数据查询方法 Lucene实现全文检索 分析器的使用 查询索引 索引库的维护 数据分类 结构化数据:指具有固定格式或有限长度的数据(例如数据库,元数据等) 非结构化数据:指不定长或无固定格式的数据(例如邮件,word文档等) 非结构化数据查询方法 顺序扫描法 从头到尾进行扫描,找到匹配的文件 全文检索 先建立索引,然后对索引进行搜索 Lucene实现全文检索 索引和搜索流程图 创建索引 获得原始文档 创建文档对象 我们可以将磁盘上的一个文件当成一个document,Document中包括一些Field(file_name文件名称、file_path文件路径、file_size文件大小、file_content文件内容) 分析文档 将原始内容创建为包含域(Field)的文档(document),需要再对域中的内容进行分析,分析的过程是经过对原始文档提取单词、将字母转为小写、去除标点符号、去除停用词等过程生成最终的语汇单元,可以将语汇单元理解为一个一个的单词。 创建索引( 倒排索引结构 ) 对所有文档分析得出的语汇单元进行索引,索引的目的是为了搜索,最终要实现只搜索被索引的语汇单元从而找到Document(文档) 创建索引代码 分析器的使用 Lucene 自带分词器 StandardAnalyzer:单字分词 SmartChineseAnalyzer

mysql数据库-索引-长期维护

╄→尐↘猪︶ㄣ 提交于 2020-02-08 02:32:35
############### 索引介绍 ############## """ 1. 索引介绍 需求: 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的, 也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。 说起加速查询,就不得不提到索引了。 索引: 简单的说,相当于图书的目录,可以帮助用户快速的找到需要的内容. 在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。能够大大提高查询效率。 特别是当数据量非常大,查询涉及多个表时,使用索引往往能使查询速度加快成千上万倍. 本质: 索引本质:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果, 同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据。 """ ############### 索引方法 ############## """ 2.索引方法 1. B+TREE 索引 B+树是一种经典的数据结构,由平衡树和二叉查找树结合产生,它是为磁盘或其它直接存取辅助设备而设计的一种平衡查找树, 在B+树中,所有的记录节点都是按键值大小顺序存放在同一层的叶节点中,叶节点间用指针相连,构成双向循环链表, 非叶节点(根节点、枝节点)只存放键值,不存放实际数据。 注意:通常其高度都在2

ElasticSearch 监控单个节点详解

坚强是说给别人听的谎言 提交于 2020-02-08 01:09:35
  1、介绍      集群健康 就像是光谱的一端——对集群的所有信息进行高度概述。 而 节点统计值 API 则是在另一端。 它提供一个让人眼花缭乱的统计数据的数组,包含集群的每一个节点统计值。     节点统计值 提供的统计值如此之多,在完全熟悉它之前,你可能都搞不清楚哪些指标是最值得关注的。我们将会高亮那些最重要的监控指标(但是我们鼓励你记录接口提供的所有指标——     或者用 Marvel ——因为你永远不知道何时需要某个或者另一个值)。   2、节点统计值命令     GET _nodes/stats   3、结果介绍     1、开头部分       在输出内容的开头,我们可以看到集群名称和我们的第一个节点:              节点是排列在一个哈希里,以节点的 UUID 作为键名。还显示了节点网络属性的一些信息(比如传输层地址和主机名)。这些值对调试诸如节点未加入集群这类自动发现问题很有用。       通常你会发现是端口用错了,或者节点绑定在错误的 IP 地址/网络接口上了。     2、索引部分       索引(indices) 部分列出了这个节点上所有索引的聚合过的统计值 :                     返回的统计值被归入以下部分:        docs 展示节点内存有多少文档,包括还没有从段里清除的已删除文档数量。       

[Python日记-2]列表-元组-字典-if-for

北城以北 提交于 2020-02-08 00:13:29
今天学习了列表,元组,字典相关知识,真的琐碎。我应该是学了好几遍了,刚开始是充满激情的,学到一个方法就迫不及待地去尝试,现在也平和了。好了,总结下。 1. 列表 Python中用方括号([])来表示列表,并用逗号来分隔其中的元素。要访问列表元素,列表的名称[索引]。 索引可以是负值,如将索引指定为-1,可让Python返回最后一个列表元素。可以在不明确列表长度的情况下,访问最后的元素。 1.1 列表中添加元素的方法: 1 Lis = [] 2 3 Lis.title() #使列表中每个元素的首字母大写 4 5 Lis.append('apple') #将'apple'元素添加到列表末尾 6 7 Lis.insert(0,'apple') #在Lis列表的索引为0的位置,添加元素'apple' 其中,由于经常要等到程序运行后,才知道用户要在程序中储存哪些数据。为控制用户,可首先创建一个空列表,用于储存用户将要输入的值,然后将用户提供的每个新值附加到列表中(append)。 1.2 列表中删除元素的方法: Lis = [] del Lis[0] #删除Lis列表中某一索引的值 pop_imp = Lis.pop() #弹出列表最后一个元素的值,并由pop_imp储存 pop_imp = Lis.pop(0) #弹出列表第一个元素的值,并由pop_imp储存 Lis.append(

Pandas基础4(变换与排序)

為{幸葍}努か 提交于 2020-02-07 19:53:15
Pandas排序(主要研究对DataFrame的排序): .sort_index(axis,ascending)方法对指定轴的索引进行排序; 未给定参数的情况下,默认对0轴进行升序操作。左侧列为0轴,上行排为1轴。 .sort_values(by,axis=0,ascending=True)方法对值进行排序; by是给定的一个索引。 这里需要注意的是,若排序方向为axis=0,axis参数可以缺省;排序方向为axis=1,axis参数不能缺省。 NaN统一放在排序的末尾。 基本统计分析函数: 适用于DataFrame,Series类型 : .sum() .count() .mean() .median() .var() .std().min() .max()其中DataFrame返回为Series类型,Series返回为零维。 仅适用于Series类型 : .argmin() .argmax()返回自动索引位置 .idxmin() .idxmax()返回自定义索引位置 .describe()方法: Series返回一个Series类型: 因此可以索引:Se.describe()[‘count’]获得count DataFrame返回一个DataFrame类型: 默认按照0轴进行统计,需要获得某一个统计值,可以使用loa=c.discribe().iloc(‘max’)即可。 复习

开源百度云分享爬虫项目yunshare最新分享 - 安装篇

妖精的绣舞 提交于 2020-02-07 18:43:16
今天开源了一个百度云网盘爬虫项目,地址是 https://github.com/callmelanmao/yunshare 。 百度云分享爬虫项目 github上有好几个这样的开源项目,但是都只提供了爬虫部分,这个项目在爬虫的基础上还增加了保存数据,建立elasticsearch索引的模块,可以用在实际生产环境中,不过web模块还是需要自己开发 安装 安装node.js和pm2,node用来运行爬虫程序和索引程序,pm2用来管理node任务 安装mysql和mongodb,mysql用来保存爬虫数据,mongodb用来保存最终的百度云分享数据,这些数据是json格式的,用mongodb保存更方便。 git clone https://github.com/callmelanmao/yunshare cnpm i 推荐使用cnpm命令安装npm依赖,最简单的安装方式 $ npm install -g cnpm --registry=https://registry.npm.taobao.org 更多安装cnpm的命令可以去 npm.taobao.org 上面找。 初始化 爬虫数据(主要是url列表)都是保存在mysql数据库的,yunshare使用sequelizejs做orm映射,源文件在 src/models/index.js ,默认的mysql用户名和密码都是root