查问我看笔记功能的实现过程2

PHPer 2020-04-06 1227 0 0

查问我看笔记功能的实现的重点就是全文搜索,如果不用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是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。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.

stable.pngdownloads.pngyii2-sphinx.svg?branch=master...

立即注册

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使用自带全文索引(带中文分词)

如果之前建立全文索引,要先删除建立的索引,然后用下面的重新建立索引,亲测有效,nice 20200408 1307

ALTER TABLE `w_note` DROP INDEX content

ALTER TABLE `w_note` ADD FULLTEXT(`content`) with parser ngram;

修改配置文件: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
立即注册

PHP获取类名及所有函数名

1.获取行号、文件路径文件名、类名、方法名的常量

__LINE__ 文件中的当前行号。


__FILE__ 文件的完整路径和文件名。

如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。


__FUNCTION__ 函数名称(PHP 4.3.0 新加)。...

立即注册

查问我看笔记功能的实现之3

今天给设备维护功能模块增加了搜索功能,顺便给一直想加却没增加的笔记模块增加搜索功能。20201122

其中在想做一个or(或)关系like查询,在Yii里忘记怎么弄了,后面网上找到了方法,就用的下面这个。...

立即注册

查问我看笔记功能的实现之4

今天给设备维护功能模块增加了搜索功能,顺便给一直想加却没增加的笔记模块增加搜索功能。20201122...

立即注册

更新于:2020-04-09 00:32:25
相关内容

查问我看笔记功能的实现过程

题外话 Yii 页面提示。 404错误,请求的页面不存在。含义是控制器的方法有,只是数据不存在。 404错误,页面未找到。含义是控制器的方法不存在。 好事多磨 20200405 1018 很尴尬,搞全文索引绕了个大圈子,开始用全文索引的Yii2扩展,各种坑,最后升级mysql5.7到mysql8,结果网站的数据库执行速度慢了0.3-0.5秒。 20200408 2...

代码要用的-增加查问我看笔记功能

查问我看笔记如何达到自己想要的效果

这里测试下多用户写笔记的效果

用超级用户运行composer require提示不要用超级用户运行composer

ActiveForm升阶-增加placeholder-自己在项目里搜到的代码

写着代码,听到了M2M - pretty Boy

提交表单提示:内容只能包含至多2,000个字符。于是改为5000

Yii2组件扩展Select2的优化问题

服务器上composer安装了Yii2的扩展yii-xunsearch支持中文全文索引搜索

关于代码遗漏更改的问题-以后要一起改

查问我看20200406整站代码已经上传到百度云

今天搞全文索引全文搜索

composer 使用composer install –no-scripts 报错了

网上查了下说composer install 的Symfony\Component\Console\Exception\RuntimeException报错要composer update

YII2 composer update 报错解决一例

composer global require "fxp/composer-asset-plugin"后composer update遇到的问题

composer update又出了问题,由于项目文件3年没用过composer安装扩展了,各种问题

查看composer的版本

composer 安装扩展时遇到的问题

mpdf/mpdf扩展又出问题

之前项目代码里有隐性的问题-composer去掉一些扩展引出的问题

删了yii2-swiftmailer后在重新用php composer.phar require --prefer-dist yiisoft/yii2-swiftmailer

深度浪漫-网站设计-url没有完成简洁

查问我看笔记功能的实现过程之三-MYSQL8.0全文索引使用​

MYSQL8.0全文索引使用概述:在一堆文字中找到含有关键字的应用。当然也可以用以下语句实现:SELECT * FROM <表名> WHERE <字段名> like ‘%ABC%’但是它的效率太低,是全盘扫描。Mysql 提供了更高效的方法全文索引(FULLTEXT)重要:Mysql 5.6之前版本,只有myisam支持全文索引,5.6之后,Innodb和myisam均支持全文...

mysql数据库存入报错,好像是内容超出了Text格式的长度

mysql数据库存入报错之二,好像是内容超出了Text格式的长度

实测,mysql8 中文全文索引

Mysql8全文索引查询实测-match(title) against

mysql无组件中文全文索引,兼容各个版本,上亿数据亲测无压力

Yii2中使用order by locate的写法

Yii2中自带分页类实现分页

用match查询yi和yii返回结果都是0条,索引用的是ngram

查问我看代码维护记录

/*** htmlCutBegin() html截取前部分,返回的是格式正确的html 20180116* 后面再加上html的dom格式是否正确的检查 20180117 **** //增加类simple_html_dom存在的判断,代码严谨性更高 20210130* //增加了对象 is_countable的判断 20210130* @access* ...

做抽奖的时候,弹窗登录需要的css代码

查问我看帖子增加推荐功能

查问我看搜索时会遇到搜索不到的情况

后台的功能改变,帖子按照浏览次数DESC排序

Yii2 HTMLPurifier_Filter 屏蔽了 target=_blank

增加了把ip_record表的数据移到文件的功能

​本地运行查问我看遇到的问题(用的是phpstudy)

查问我看验证邮箱报错(原因:QQ授权码过期)

查问我看服务器维护记录

解决Apache长时间占用内存大的问题,Apache 内存优化方法 设置MaxRequestsPerChild或MaxConnectionsPerChild不为0
推荐内容

如何注册Spotify,注册中遇到的问题

起因是找阿特拉斯耸耸肩3里片尾的歌曲,后面用谷歌插件 aha music找到了歌曲名字和作曲人:The Beginning Elia Cmiral,然后资料在spotify有,于是就注册,甚至通过远程服务器,在服务器上打开浏览器也...

Spotify无法注册,想了很多办法后无果于是联系客服

Spotify无法注册,想了很多办法后无果于是联系客服

客服回答中国地区现在无法注册 If you still need help, contact Spotify Support.

mysql8使用自带全文索引(带中文分词)

如果之前建立全文索引,要先删除建立的索引,然后用下面的重新建立索引,亲测有效,nice 20200408 1307 ALTER TABLE `w_note` DROP INDEX content ALTER TABLE `w_note` ADD FULLT...

MySQL如何重建索引

总结一下MySQL索引重建的方法:1: DROP INDEX + RECREATE INDEX.2: ALTER TABLE方法3: REPAIR TABLE方法,这种方法对于InnoDB存储引擎的表无效。4: OPTI...

linux Centos8邮件服务器的搭建和使用

echo "content" | mail -s "title" xxx@gmail.com vi /etc/postfix/master.cf 更改配置文件把#smtps inet n - - - - smtpd 注释去掉 保存退出,重启postfix服务,报错 [root@vultrguest ~]# sudo systemctl restart ...

webmin和postfix