search
HomeDatabaseMysql Tutorialmysql全文搜索中文应用

今天要介绍的就是mysql全文搜索的应用,全文检索的表的存储引擎类型必须为MyISAM,否则不能做全文搜索哦。

首先用下面表举例:

 代码如下 复制代码


01.CREATE TABLE articles (02.id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,03.title VARCHAR(200),04.body TEXT,05.FULLTEXT (title,body)06.) ENGINE=MyISAM DEFAULT CHARSET=utf8;

MySQL使用Match()和Against()执行全文搜索,举例如下:

 代码如下 复制代码

SELECT body FROM articles WHERE Match(body) Against('www.phpddt.com');

如上Match是正对指定的列进行搜索,Against('www.phpddt.com')是正对指定词进行搜索

另外:

使用查询扩展WITH QUERY EXPANSION,将会搜索出更多结果(mysql会将匹配的行中有用的词再次进行搜索,这样搜索出来的结果更多,但可能不是你想要的);

使用布尔文本搜索IN BOOLEAN MODE,类似我们平时使用搜索引擎时用到的的语法:逻辑与、逻辑或、逻辑非等.支持的布尔操作符如下:

全文布尔操作符:
--------------------------------------------------------------------------------------------------------------
|操作符                        |      说明                                                                                  |
--------------------------------------------------------------------------------------------------------------
|    +                       |包含,词必须存在                                                                            
|     -                      |排除,词必须不出现                                                                        
|     >                      |包含,而且增加等级值                                                                     
|     |     ()                      |把词组成子表达式(允许这些子表达式作为一个组被包含,排除,排列等)
|      ~                     |取消一个词的排序值
|     *                       |词尾的通配符
|     " "                     |定义一个短语(与单个词的列表不一样,它匹配整个短语以便包含或排除这个短语) 
----------------------------------------------------------------------------------------------------------------

使用方法如下:

 代码如下 复制代码

SELECT * FROM articles WHERE MATCH (title,body)

     AGAINST ('+apple -banana' IN BOOLEAN MODE);

   + 表示AND,即必须包含。- 表示NOT,即不包含。

 

 代码如下 复制代码

SELECT * FROM articles WHERE MATCH (title,body)

     AGAINST ('apple banana' IN BOOLEAN MODE);

   apple和banana之间是空格,空格表示OR,即至少包含apple、banana中的一个。

 

 代码如下 复制代码

SELECT * FROM articles WHERE MATCH (title,body)

     AGAINST ('+apple banana' IN BOOLEAN MODE);

   必须包含apple,但是如果同时也包含banana则会获得更高的权重。

 

 代码如下 复制代码

SELECT * FROM articles WHERE MATCH (title,body)

     AGAINST ('+apple ~banana' IN BOOLEAN MODE);

   ~ 是我们熟悉的异或运算符。返回的记录必须包含apple,但是如果同时也包含banana会降低权重。但是它没有 +apple -banana 严格,因为后者如果包含banana压根就不返回。

 

 代码如下 复制代码

SELECT * FROM articles WHERE MATCH (title,body)

 AGAINST ('+apple +(>banana

返回同时包含apple和banana或者同时包含apple和orange的记录。但是同时包含apple和banana的记录的权重高于同时包含apple和orange的记录。

linux中mysql中文全文搜索 .

 代码如下 复制代码

centos6
xampp1.7.7
mysql5.5

# /opt/lampp/bin/mysql -uroot -ppassword

mysql> SHOW VARIABLES LIKE 'plugin_dir';
插件路径:/opt/lampp/lib/mysql/plugin

# wget http://mysqlcft.googlecode.com/files/mysqlcft-1.0.0-x86_64-bin.tar.gz
# tar zxvf mysqlcft-1.0.0-x86_64-bin.tar.gz
# cp mysqlcft.so /opt/lampp/lib/mysql/plugin

# /opt/lampp/bin/mysql -uroot -ppassword
mysql> INSTALL PLUGIN mysqlcft SONAME 'mysqlcft.so';
mysql> SELECT * FROM mysql.plugin;
mysql> SHOW PLUGINS;


ALTER IGNORE TABLE articles ADD FULLTEXT INDEX cnFullIndex (title,body) WITH PARSER mysqlcft;

SELECT * FROM articles WHERE MATCH(title,body) AGAINST ('北京' IN BOOLEAN MODE

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
如何使用php扩展Sphinx进行全文搜索如何使用php扩展Sphinx进行全文搜索Jul 29, 2023 am 10:05 AM

如何使用PHP扩展Sphinx进行全文搜索全文搜索是现代Web应用程序中的常见需求之一。为了满足用户对数据的高效查询和检索,我们可以使用Sphinx这个功能强大的开源搜索引擎来实现全文搜索功能。Sphinx使用C++编写,提供了PHP的扩展,方便我们在PHP项目中使用。本文将介绍如何使用PHP扩展Sphinx进行全文搜索

PHP如何实现全文搜索功能,提供便捷的信息查找PHP如何实现全文搜索功能,提供便捷的信息查找Jun 27, 2023 am 09:04 AM

在现代网络应用开发中,全文搜索功能已经成为了必不可少的一部分。而PHP作为一个广泛应用于开发Web应用的语言,也自然而然地提供了一些功能强大的库来支持全文搜索。在这篇文章中,我们将深入探讨如何使用PHP实现全文搜索功能,并且提供一些小技巧,使你的信息查找更加便捷。一、什么是全文搜索?全文搜索是指在一篇文档中检索某个关键字或短语的能力。传统的搜索引擎通常只是简

如何使用PHP和SQLite进行全文搜索和索引策略如何使用PHP和SQLite进行全文搜索和索引策略Jul 29, 2023 pm 08:45 PM

如何使用PHP和SQLite进行全文搜索和索引策略引言:在现代的应用程序开发中,全文搜索功能在许多领域中都是不可或缺的。无论是在博客、新闻网站还是在电子商务平台上,用户都习惯使用关键字进行搜索。因此,为了提高用户体验并提供更好的搜索结果,我们需要使用适当的搜索和索引策略来提供全文搜索功能。在本文中,我们将探讨如何使用PHP和SQLite数据库来实现全文搜索和

如何使用MongoDB实现数据的全文搜索功能如何使用MongoDB实现数据的全文搜索功能Sep 19, 2023 pm 05:48 PM

如何使用MongoDB实现数据的全文搜索功能导语:随着信息化时代的迅猛发展,全文搜索功能成为了许多应用程序的必备功能。作为一个流行的NoSQL数据库,MongoDB也提供了强大的全文搜索能力。本文将介绍如何使用MongoDB实现数据的全文搜索功能,并提供相关的代码示例。一、MongoDB全文搜索功能简介MongoDB的全文搜索功能是通过MongoDB的文本索

如何通过PHP和Elasticsearch快速实现全文搜索如何通过PHP和Elasticsearch快速实现全文搜索Jul 17, 2023 pm 05:17 PM

如何通过PHP和Elasticsearch快速实现全文搜索全文搜索在现代应用程序中变得越来越重要,它可以帮助用户快速找到他们需要的信息。Elasticsearch是一个强大的开源搜索引擎,它提供了快速和高效的全文搜索功能。结合PHP的强大功能和Elasticsearch的灵活性,我们可以轻松地实现全文搜索功能。本文将向您展示如何使用PHP和Elasticse

如何使用 PHP 实现全文搜索和关键字提取功能如何使用 PHP 实现全文搜索和关键字提取功能Sep 05, 2023 pm 02:00 PM

如何使用PHP实现全文搜索和关键字提取功能全文搜索和关键字提取是现代网站和应用程序中常见的功能,可以为用户提供更好的搜索体验和相关推荐。在PHP中,我们可以使用全文索引和关键字提取的技术来实现这些功能。本文将介绍如何使用PHP实现全文搜索和关键字提取功能,并提供相应的代码示例。全文搜索功能的实现全文搜索是指在文本内容中搜索包含指定关键字的记录。在

如何在PHP7.0中实现一个全文搜索引擎?如何在PHP7.0中实现一个全文搜索引擎?May 26, 2023 pm 04:51 PM

随着信息时代的不断发展,人们越来越依赖互联网来获取信息。而作为信息分享的平台之一,网页搜索引擎也在不断进化和完善。本文将介绍如何在PHP7.0中实现一个全文搜索引擎,帮助读者更好地利用PHP技术,快速构建高效率的搜索引擎。一、全文搜索引擎概述全文搜索即使用关键词或短语在整篇文档中进行搜索,以找到最匹配的结果。全文搜索引擎使用算法对文档进行索引,以加速搜索。在

在PHP中使用Solr进行全文搜索在PHP中使用Solr进行全文搜索Jun 20, 2023 am 09:12 AM

Solr是一个基于Lucene的搜索引擎,可以用于实现全文搜索。在PHP中使用Solr进行全文搜索,可以帮助我们快速地通过关键词查询到相关的数据,提高搜索结果的准确性和可靠性。本文将为大家介绍如何在PHP中使用Solr进行全文搜索。一、Solr的安装与配置首先,我们需要在服务器上安装Solr和PHP的Solr扩展。Solr的安装步骤可以参考Solr的官方文档

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Atom editor mac version download

Atom editor mac version download

The most popular open source editor