原 查问我看笔记功能的实现过程2
查问我看笔记功能的实现的重点就是全文搜索,如果不用Yii自带的ActiveRecord的话,就要找扩展,先找了个yii-xunsearch,不行太差了,又找了yiisoft/yii2-elasticsearch,看了下使用方法和网上的文章,感觉太复杂了。试试yiisoft/yii2-sphinx
yiisoft/yii2-sphinx也坑了,安装很简单,一行代码,但根本没有讲怎么配置 20200408
我连youtube的视频都找了,找到了个视频,但不是用Yii2扩展的方式去用的 20200409
Windows - Mastering Yii 2: Using Sphinx with Yii 2 | packtpub.com - YouTube
https://www.youtube.com/watch?v=7IlO-w2zZUg
接着 查问我看笔记功能的实现过程 https://wokan.chawen.org/note/1
yiisoft/yii2-elasticsearch
yiisoft/yii2-sphinx
这里后续 20200406 2217
成功安装了后,在配置文件里加入了
return [//.......
yii-xunsearch全文搜索扩展的各种坑-于是果断到YiiFramework官网上找需要的
Unknown Method – yii\base\UnknownMethodException
Calling unknown method: App::xunsearch()
XSErrorException
fsockopen(): unable to connect to localhost:8384 (No route to host)
官网Yii扩展地址 https://www.yiiframework.com/extensions?category=4&version=2.0
'xunsearch' => [
'class' => 'hightman\xunsearch\Connection', // 此行必须
'iniDirectory' => '@vendor/hightman/xunsearch/app', // 搜索 ini 文件目录,默认:@vendor/hightman/xunsearch/app //@app/config
'charset' => 'utf-8', // 指定项目使用的默认编码,默认即时 utf-8,可不指定
],
创建一个Demo类
use Yii; class Demo extends \hightman\xunsearch\ActiveRecord { /** * @inheritdoc */ public static function tableName() { return '{{%post}}'; } /*public static function projectName() { return 'another_name'; // 这将使用 @app/config/another_name.ini 作为项目名 }*/ }
$db = \Yii::$app->xunsearch('demo'); $xs = $db->xs; $search = $db->getSearch(); $index = $db->getIndex();
报错 ...
Yii的几个著名数据库相关的扩展介绍MongoDB,ElasticSearch,Sphinx
MongoDB是一个基于分布式文件存储[1]的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
ElasticSearch是一个基于Lucene的搜索服务器。
Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。
MongoDB是一种数据库,就像Mysql一样,ElasticSearch(521733次下载)和Sphinx(309201次下载)都是搜索引擎。基于次数,我先用下yiisoft/yii2-elasticsearch,不行在用yiisoft/yii2-sphinx。
MongoDB是一个基于分布式文件存储[1]的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。...
这里把用的linux命令记录下
linux find 命令查找文件和文件夹
查找目录:find /(查找范围) -name 查找关键字 -type d
查找文件:find /(查找范围) -name 查找关键字 -print
find命令实例 简单地使用find命令查找指定目录下的某个文件的方法如下: #find /etc -name inittab /etc/inittab #在当前目录下,查找名称为inittab的文件: #find . -name inittab ./inittab
iptables -I INPUT -ptcp --dport 9306 -j ACCEPT...
Sphinx Extension for Yii 2
看了这个说明,你是不是吐了,介绍配置的也太简单了吧
不搞了,我去看mysql全文索引了,就用Yii自带的数据库类就行了。 20200407 2258
Sphinx Extension for Yii 2
This extension addsSphinxfull text search engine extension for theYii framework 2.0. It supports all Sphinx features includingReal-time Indexes.
For license information check theLICENSE-file.
Documentation is athttps://github.com/yiisoft/yii2-sphinx/blob/master/docs/guide/README.md.
Mysql全文索引查不到数据的问题
为什么要设置 Mysql 的 ft_min_word_len=1 ?
从 Mysql 4.0 开始就支持全文索引功能,但是 Mysql 默认的最小索引长度是 4。如果是英文默认值是比较合理的,但是中文绝大部分词都是2个字符,这就导致小于4个字的词都不能被索引,全文索引功能就形同虚设了。国内的空间 商大部分可能并没有注意到这个问题,没有修改 Mysql 的默认设置。
这里设置为2应该性价比最高。
大多数是由于mysql未开启全文索引引起 ,mysql开启全文索引方法:...
MySQL如何重建索引
总结一下MySQL索引重建的方法:
1: DROP INDEX + RECREATE INDEX.
2: ALTER TABLE方法
3: REPAIR TABLE方法,这种方法对于InnoDB存储引擎的表无效。...
mysql8使用自带全文索引(带中文分词)
修改配置文件:vim /etc/my.cnf [mysqld] ngram_token_size=2 创建表: create table test( id int(11) not null primary key auto_increment, name varchar(100) not null comment '工商名', brand varchar(100) default null comment '品牌名', en varchar(100) default null comment '英文名', fulltext key (name,brand,en) with parser ngram )engine=innodb default charset=utf8; insert into test (name,brand,en) values ('芜湖美的厨卫电气制造有限公司','aa','wh'); insert into test (name,brand,en) values ('北京凡客尚品电子商务有限公司','aa','ef'); insert into test (name,brand,en) values ('凡客诚品(北京)科技有限公司','aa','dfd'); insert in如果之前建立全文索引,要先删除建立的索引,然后用下面的重新建立索引,亲测有效,nice 20200408 1307
ALTER TABLE `w_note` DROP INDEX content
ALTER TABLE `w_note` ADD FULLTEXT(`content`) with parser ngram;
PHP获取类名及所有函数名
1.获取行号、文件路径文件名、类名、方法名的常量
__LINE__ 文件中的当前行号。
__FILE__ 文件的完整路径和文件名。
如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。
__FUNCTION__ 函数名称(PHP 4.3.0 新加)。...
查问我看笔记功能的实现之3
今天给设备维护功能模块增加了搜索功能,顺便给一直想加却没增加的笔记模块增加搜索功能。20201122
其中在想做一个or(或)关系like查询,在Yii里忘记怎么弄了,后面网上找到了方法,就用的下面这个。...
查问我看笔记功能的实现之4
今天给设备维护功能模块增加了搜索功能,顺便给一直想加却没增加的笔记模块增加搜索功能。20201122...