全文索引

coreseek 基与Sphinx 的全文索引

做~自己de王妃 提交于 2019-12-06 17:01:33
假设有两张那个表,分别为articles,article_photos两张表。搜索的时候,要匹配articles.title、articles.intro、article_photos.caption这三个字段。 PHP页面 header("content-type:text/html;charset=utf8"); include './sphinxapi.php'; //包含sphinxapi类 $sphinx = new SphinxClient(); //实例化 $sphinx->SetServer('localhost', 9312);//链接 $res = $sphinx->Query("暴动", "*");//查询的字段第二参数是你配置文件里面写得规则这里是*就会匹配所有规则 echo "<pre>"; print_r($res['matches']); coreseek.conf 内容配置如下 #源定义 #mysql类只实现连接数据库 source mysql { type = mysql sql_host = localhost sql_user = root sql_pass = sql_db = nextmgz_archive sql_port = 3306 sql_query_pre = SET NAMES utf8 # 命令行查询时,设置正确的字符集

MySQL学习笔记(1)

橙三吉。 提交于 2019-12-05 11:11:13
数据库概述 关系型数据库 E-R关系图 常见的数据库 MYSQL数据库服务器 MYSQL的SQL语句 登录数据库 数据库的CRUD操作 创建数据库 数据库明明规范 查看数据库 修改数据库的字符集 删除数据库 选择数据库 存储引擎 查看数据库管理系统支持的引擎 第一种 第二种 查询默认存储引擎 修改默认的存储引擎 选择存储引擎 表的CRUD操作 创建表 查看表 更新表 删除表 列的CRUD操作 列的类型 列的约束 设置外键约束 添加列 修改列 删除列 索引 创建索引 普通索引 创建表时创建普通索引 在已经存在的表上创建普通索引 通过SQL语句ALTER TABLE 创建普通索引 唯一索引 创建表时创建唯一索引 在已经存在的表中创建唯一索引 通过SQL语句ALTER TABLE创建唯一索引 全文索引 创建表时创建全文索引 在已经存在的表上创建全文索引 通过SQL语句ALTER TABLE 创建全文索引 多列索引 创建表时创建全文索引 在已经存在的表上创建全文索引 通过SQL语句ALTER TABLE 创建全文索引 删除索引 视图 创建视图 查看视图 查看视图定义信息 DESCRIBEDESC查看视图设计信息 删除视图 修改视图 触发器的操作 创建触发器 创建包含多条执行语句的触发器 查看触发器 删除触发器 数据的操作 插入数据记录 插入单条数据 插入多条数据 插入查询结果 更新数据

索引篇

喜你入骨 提交于 2019-12-05 01:01:55
索引篇 MySQL中的索引分为很多种,具体如下: 1、普通索引 2、唯一性索引 3、全文索引 4、单列索引 5、多列索引 6、空间索引 其作用就是提高表中数据的查询速度。 创建索引的 方式 有 三种 ,具体如下: 一、创建表的时候创建索引 二、使用CREATE INDEX 语句在已经存在的表上创建索引 三、使用ALTER TABLE语句在已经存在表上创建索引 格式: CREATE TABLE + 表名+(字段名 数据类型[完整性约束条件], 字段名 数据类型[完整性约束条件], ......              字段名 数据类型             [UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [别名] (字段名1 [(长度)]) [ASC|DESC]) ); 注: 格式中【】中的内容均 可省略 ! 关于上述语法的相关解释具体如下: UNIQUE : 可选参数,表示唯一性约束 FULLTEXT : 可选参数,表示全文约束 SPATIAL : 可选参数,表示空间约束 INDEX 和 KEY :用来表示字段的索引,二者选一即可 别名 :可选参数,表示创建的索引的名称 字段名 1:指定索引对应字段的名称 长度 :可选参数,用于表示索引的长度 ASC 和 DESC :可选参数,其中, ASC 表示 升序 排列, DESC 表示 降序 排列 1

Lucene全文检索

孤街醉人 提交于 2019-12-04 23:23:03
流程图 一.创建文档 文档域 注: 每一个Doucment可以有多个field,不同的Document可以有不同的field,同一个Document可以有相同的field(域名和域值都相同) 每一个文档都有唯一的编号 二.分析文档   将文档中的大写转化成小写,清除 is a 标点 停用词等过程生成语汇单元,每一个单词叫一个Term,不同的域中拆分出来的的单词是不同的term file_name 和file_content中的相同单词属于不同的域, term key:域 value: spring只有key和value相同的才是一个东西 三.创建索引 来源: https://www.cnblogs.com/lovetl/p/11888056.html

【转帖】从原理到应用,Elasticsearch详解

给你一囗甜甜゛ 提交于 2019-12-04 18:05:22
从原理到应用,Elasticsearch详解 https://segmentfault.com/a/1190000020022504 elasticsearch 2.1k 次阅读 · 读完需要 49 分钟 54 简介 Elasticsearch(简称ES)是一个分布式、可扩展、实时的搜索与数据分析引擎。ES不仅仅只是全文搜索,还支持结构化搜索、数据分析、复杂的语言处理、地理位置和对象间关联关系等。 ES的底层依赖Lucene,Lucene可以说是当下最先进、高性能、全功能的搜索引擎库。但是Lucene仅仅只是一个库。为了充分发挥其功能,你需要使用Java并将Lucene直接集成到应用程序中。更糟糕的是,您可能需要获得信息检索学位才能了解其工作原理,因为Lucene非常复杂——《ElasticSearch官方权威指南》。 鉴于Lucene如此强大却难以上手的特点,诞生了ES。ES也是使用Java编写的,它的内部使用Lucene做索引与搜索,它的目的是隐藏Lucene的复杂性,取而代之的提供一套简单一致的RESTful API。 总体来说,ES具有如下特点: 一个分布式的实时文档存储引擎,每个字段都可以被索引与搜索 一个分布式实时分析搜索引擎,支持各种查询和聚合操作 能胜任上百个服务节点的扩展,并可以支持PB级别的结构化或者非结构化数据 架构 节点类型 ES的架构很简单

robbe+base64+Mysql简易有效的php全文索引实现

 ̄綄美尐妖づ 提交于 2019-12-04 08:11:24
确实有很多方法来给php提供全文索引功能。 例如: 1。solr或者lucene,(需要安装对应的php客户端扩展)。 2。sphinx 3。基于任何一个数据库(key/value的最好)的模拟实现。 4。Mysql的全文索引。 5。自己给php加上全文索引扩展。(就因为这一点,可以说有太多的实现方法了) 本文要介绍的是第四种,使用MySQL的全文索引来实现php的全文检索功能。 一。前提 MySQL数据表引擎要是MyISAM (Mysql的ISAM索引结构的实现) 二。准备: 假设建立如下一个简易的文章表格: +------+---------+-----------+--------------------------------------+ | Id | title | author | content | c_idx(text,fulltext) | +------+---------+-----------+------------------------------------+ 其中content为原文,c_idx为中文分词后的base64编码串接字符串,并且为fulltext索引。 请看下文。 三。实现分析: 1。如果要被检索的内容是英文的,那么要做的事情很简单,给要检索的字段加上一个fulltext索引就可以了。 2

discuz论坛配置开启Sphinx全文搜索

孤人 提交于 2019-12-03 05:47:36
技术简介: Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,Python,Perl,Ruby等,同时为MySQL也设计了一个存储引擎插件。 Sphinx 单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需 3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建 如果用到sphinx,全文索引交给sphinx来做,sphinx返回含有该word的ID号,然后用该ID号直接去数据库准确定位那些数据,整个过程如下图:一次只需几十秒。 因为sphinx默认不支持中文索引及检索,而coreseek基于sphinx开发了coreseek全文检索服务器,它提供了为sphinx设计的中文分词包libmmseg包含mmseg中文分词,是目前用的最多的sphinx中文检索。在没有sphinx之前,mysql数据库要对海量的文章中的词进行全文索引,一般用的语句例如:SELECT *** WHERE *** LIKE '%word%';这样的LIKE查询,并且再结合通配符%

Sql2008 全文索引 简明教程

匿名 (未验证) 提交于 2019-12-03 00:40:02
1. CONTAINS SELECT * FROM dbo.Business WHERE CONTAINS(Address, ‘旅游‘) 2. FREETEXT 01.select * 02.from dbo.Business 03.where freetext(Address,‘带婴儿旅游‘) 3.CONTAINSTABLE SELECT * FROM Business AS FT_TBL INNER JOIN CONTAINSTABLE(Business, *, ‘ISABOUT (婴儿 WEIGHT (.8),赤水 WEIGHT (.4) )‘) AS KEY_TBL ON FT_TBL.BusinessId = KEY_TBL.[ KEY] ORDER BY KEY_TBL.RANK DESC 4. FREETEXTTABLE SELECT * , BusinessID , Address FROM Business AS FT_TBL INNER JOIN FREETEXTTABLE(Business, Address, ‘ISABOUT (带婴儿旅游 WEIGHT (.8),赤水 WEIGHT (.4) )‘) AS KEY_TBL ON FT_TBL.BusinessId = KEY_TBL.[ KEY] ORDER BY KEY_TBL.RANK DESC 原文:

Lucene In Action 读书笔记(一)

无人久伴 提交于 2019-12-02 23:45:51
简介 Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个 开放源代码 的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分 文本分析 引擎(英文与德文两种西方语言)。Lucene的目的是为 软件开发 人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。(摘自百度百科) 代码环境 操作系统:centos 5.8 开发环境:Eclipse 4.3 构建工具:Maven 4.0 Maven配置 为了能够按照书中的例子进行学习,这里依赖的Lucene版本是3.0.1 <dependencies> <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>3.0.1</version> </dependency> </dependencies> 完整配置 : <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=