prepare
Lucene
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆
elasticsearch
https://www.cnblogs.com/valor-xh/p/6095894.html
为什么搜索的快
https://www.cnblogs.com/ottll/p/9470732.html
http1 和 http2区别
https://www.cnblogs.com/heluan/p/8620312.html
为什么组合索引要遵循最左原则
mysql创建复合索引的规则是首先会对复合索引的最左边,也就是索引中的第一个字段进行排序,在第一个字段排序的基础上,在对索引上第二个字段进行排序,其实就像是实现类似order by 字段1,字段2这样的排序规则,那么第一个字段是绝对有序的,而第二个字段就是无序的了,因此一般情况下直接只用第二个字段判断是用不到索引的,这就是为什么mysql要强调联合索引最左匹配原则的原因。
魔术方法
__get( $property ) 当调用一个未定义的属性时访问此方法
__set( $property, $value ) 给一个未定义的属性赋值时调用
__toString方法在将一个对象转化成字符串时自动调用
__construct 构造方法,当一个对象创建时调用此方法,使用此方法的好处是:可以使构造方法有一个独一无二的名称,无论它所在的类的名称是什么.这样你在改变类的名称时,就不需要改变构造方法的名称
__destruct 析构方法,PHP将在对象被销毁前(即从内存中清除前)调用这个方法
默认情况下,PHP仅仅释放对象属性所占用的内存并销毁对象相关的资源.
析构函数允许你在使用一个对象之后执行任意代码来清除内存.
当PHP决定你的脚本不再与对象相关时,析构函数将被调用.
在一个函数的命名空间内,这会发生在函数return的时候.
对于全局变量,这发生于脚本结束的时候.如果你想明确地销毁一个对象,你可以给指向该对象的变量分配任何其它值.通常将变量赋值勤为NULL或者调用unset
事务隔离级别:
串行化是一个调度,即多个事务之间的执行方式;而多个事务之间的执行有个先后顺序,如果事务之间没有共同的操作对象(读或写操作),则事务之间的执行顺序前后置换是没有关系的;但是如果事物间存在共同的操作对象,则事务间先后执行的顺序则需要区分;对于存在共同操作对象的多个并发执行的事务,如果其执行结果“等价”于某个“串行化调度”,则这个调度才是“可串行化的调度”。满足“可串行化的调度”则具有了可串行化(Serializability)属性。所以,可串行化(Serializability)属性保证的是多个事务并发时的执行顺序要对数据的一致性没有影响。
单例模式
https://www.cnblogs.com/lansetiankongblog/p/8378514.html
elasticsearch基本命令:
https://blog.csdn.net/wjpwpf1990/article/details/83153639
elasticsearch批量操作
https://blog.csdn.net/mythest/article/details/88350582
elasticsearch查询一个范围
https://blog.csdn.net/qq_32165041/article/details/83714203
协调世界时,又称世界统一时间、世界标准时间、国际协调时间。由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。
数组函数
array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。
回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
提示:您可以向函数输入一个或者多个数组。
array_filter() 函数用回调函数过滤数组中的值。
该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变
array array_unique ( arrayarray )
array_unique() 接受 array 作为输入并返回没有重复值的新数组。
注意键名保留不变。array_unique()先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array中同一个值的第一个出现的键名会被保留。
注: 当且仅当 (string) $elem1 === (string) $elem2时两个单元被认为相同。就是说,当字符串的表达一样时。
第一个单元将被保留。
方法二用array_flip实现去重效果
另一个方法是使用php的array_flip函数来间接的实现去重效果
array_flip是反转数组键和值的函数,他有个特性就是如果数组中有二个值是一样的,那么反转后会保留最后一个键和值.利用这个特性我们用他来间接的实现数组的去重.
smarty模板引擎的原理:
smarty模板的使用比较简单,主要有两个非常核心的函数。一个是assig(),把模板中要使用的数据进行欲赋值,一个是display(),用来解析和展示最后的视图模板。
在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个php的混编文件,然后执行这个混编文件
php脚本传递参数:
//第一种 /* stdin 标准的输入设备 stdout 标准的输出设备 stderr 标准的错误设备 */ <?php // ask for input fwrite(stdout, "enter your name: "); // get input $name = trim(fgets(stdin)); 接收用户输入 // write input back fwrite(stdout, "hello, $name!"); ?> /*第二种在命令行里输入程序参数来更改其运行方式是很常见的做法。你也可以对CLI程序这样做。PHP CLI带有两个特殊的变量,专门用来达到这个。 目的:一个是$argv变量,它通过命令行把传递给PHP脚本的参数保存为单独的数组元素;另一个是$argc变量,它用来保存$argv数组里元素的个数。 */ <?php print_r($argv); ?> Run this script by passing it some arbitrary values, and check the output: shell> php phptest.php chocolate 276 "killer tie, dude!" Array ( [0] => test.php [1] => chocolate [2] => 276 [3] => killer tie, dude! )