php搜索功能原理

php搜索功能原理

php搜索功能原理

PHP 搜索功能的思路 (分词+匹配)

1. 最简单的搜索 (利用like语句匹配)

此搜索只能用于单个单词的搜索

例如:用户昵称的搜索,群名称的搜索等

立即学习“PHP免费学习笔记(深入)”;

推荐:《PHP教程》

2. 真正的搜索 (分词+匹配)

这种方式可用于数据段的搜索,像对文章内容标题进行检索等

原理:

利用 Mysql中的全文搜索match against

实现步骤

1.使用Mysql全文检索fulltext的先决条件:

表的类型必须是MyISAM (MySQL5.6 后Innodb也可以)

建立全文检索的字段类型必须是char,varchar,text

2.建立全文检索先期配置(配置mysql)

由于Mysql的默认配置是索引的词的长度是4,所以要支持中文单字的话,首先更改这个.

*Unix用户要修改my.cnf,一般此文件在/etc/my.cnf,如果没有找到,先查找一下find / -name ‘my.cnf’

在 [mysqld] 位置内加入:

ft_min_word_len = 2

登录后复制

其它属性还有

ft_wordlist_charset = gbk

ft_wordlist_file = /home/soft/mysql/share/mysql/wordlist-gbk.txt

ft_stopword_file = /home/soft/mysql/share/mysql/stopwords-gbk.txt

稍微解释一下:

ft_wordlist_charset 表示词典的字符集, 目前支持良好的有(UTF-8, gbk, gb2312, big5)

ft_wordlist_file 是词表文件, 每行包括一个词及其词频(用若干制表符或空格分开,消岐专用)

ft_stopword_file 表示过滤掉不索引的词表, 一行一个.

ft_min_word_len 加入索引的词的最小长度, 缺省是 4, 为了支持中文单字故改为 2

3.建立全文检索(表中添加索引)

在建表中用FullText关键字标识字段,已存在的表用 ALTER TABLE (或 CREATE INDEX) 创建索引

CREATE fulltext INDEX index_name ON table_name(colum_name);

登录后复制

4.使用全文检索(SQL语句)

在SELECT的WHERE字句中用MATCH函数

整体语法:MATCH(col1,col2,…) AGAINST (expr[search_modifier])。

其中MATCH中的内容为已建立FULLTEXT索引并要从中查找数据的列

AGAINST中的expr为要查找的文本内容,

search_modifier为可选搜索类型。

search_modifier的可能取值有:

IN NATURAL LANGUAGEMODE、IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION、IN BOOLEAN MODE、WITH QUERY EXPANSION。

登录后复制

search_modifier的每个取值代表一种类型的全文搜索,分别为自然语言全文搜索、带查询扩展的自然语言全文搜索、布尔全文搜索、查询扩展全文搜索(默认使用IN NATURAL LANGUAGE MODE)。

SELECT * FROM articles WHERE MATCH (tags) AGAINST ('旅游' IN BOOLEAN MODE);

登录后复制

以上就是php搜索功能原理的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2141765.html

(0)
上一篇 2025年2月25日 02:47:09
下一篇 2025年2月25日 02:47:37

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • nginx到php的执行流程

    nginx到php的执行流程 nginx与php处理用户请求响应流程图 简单总结了一下用户从浏览器请求网址(HTTP请求),到服务器处理请求返回数据过程,如有错误或表述不正确,欢迎讨论交流。 HTTP 事务执行过程 ● 客户端(浏览器)做出…

    2025年2月25日
    000
  • php入口文件的作用

    php入口文件的作用 php入口文件可以实现自动加载功能。 解析PHP入口文件的自动加载功能 php的自动加载: 在php5以前,我们要用某个类或类的方法,那必须include或者require,之后才能使用,每次用一个类,都需要写一条in…

    2025年2月25日
    200
  • php的内核原理

    php的内核原理 php的内核组成模块和运行原理 PHP 三大模块的 理解: 1.PHP内核:其功能是用来处理 (请求,文件流,错误)  等相关操作。 2.Zend引擎:将PHP文件转为机器语言,然后在虚拟机上运行。 立即学习“PHP免费学…

    2025年2月25日
    200
  • php封装函数步骤

    php封装函数步骤  下面定义一个方法,这个方法很简单,就是处理2个数的相加问题     function add($number1, $number2) {        $sum = $number1 + $number2;      …

    2025年2月25日
    200
  • 做php工资是多少

    做php工资是多少? 一般来说,这取决于你供职的公司和你具体的职务。当然,也和你的技术水平有关。 现在的程序员,如果是刚刚入职,一、二线城市,在5000左右(不排除个别较高或较低的现象),其它条件按照城市等级和公司规模的具体情况斟酌。 好好…

    2025年2月25日
    200
  • php 定界符如何使用

    php定界符如何使用? php中定界符 定界符 给字符串定界的方法使用定界符语法(“ 结束标识符必须从行的第一列开始。同样,标识符也必须遵循 PHP 中其它任何标签的命名规则:只能包含字母数字下划线,而且必须以下划线或非数字字符开始。 立即…

    2025年2月25日
    200
  • php变量赋值方式有几种

    php变量赋值方式有几种? php中变量的3中赋值方式 1、传值赋值,例如$a=1,$b=$a等; 2、引用赋值,例如$a=&$b,即$a和$b在都指向了内存中的同一个存储变量值得地址; 3、引用计数传值,在php和js中的对象都是…

    2025年2月25日
    200
  • php暗语指什么

    php暗语指什么? php暗语指的是php面试的那些“黑话”。 推荐:《PHP教程》 以下是一些常见的面试暗语,求职者一定要弄清楚其中蕴含的深意,不然可能“躺着也中枪”,最后只能铩羽而归。 (1)请把简历先放在这,有消息我们会通知你的 立即…

    2025年2月25日
    200
  • php怎么默认打开index

    php怎么默认打开index? 首先你需要搭建一个PHP环境,建议使用phpstudy,99%的PHP程序员都用这个。中文软件,安装流程一直下一步就行。 (phpStudy V8.0.9.3(Win64位):https://www.php.…

    2025年2月25日
    200
  • php且或非运算符是什么

    php且或非运算符是什么? php且或非运算符是属于php逻辑运算符。 ● 且也就是与,运算符是and $x and $y如果 $x 和 $y 都为 true,则返回 true。 ● 或:or、|| 立即学习“PHP免费学习笔记(深入)”;…

    2025年2月25日
    200

发表回复

登录后才能评论