首页 数据库 mysql教程 coreseek sphinx 创建表和索引

coreseek sphinx 创建表和索引

Jun 07, 2016 pm 04:38 PM
co coreseek sphinx 创建 索引

前面说了,coreseek sphinx mmseg mysql等的安装,下面说一下怎么使用。 一,coreseek sphinx启动后,会多出一个端口,并且可以像mysql一样登录,但不是登录mysql [root@localhost tank]# mysql -h 127.0.0.1 -P 9306 //不是真的连接mysql,而连接了sphinx in

前面说了,coreseek sphinx mmseg mysql等的安装,下面说一下怎么使用。

一,coreseek sphinx启动后,会多出一个端口,并且可以像mysql一样登录,但不是登录mysql

[root@localhost tank]# mysql -h 127.0.0.1 -P 9306      //不是真的连接mysql,而连接了sphinx index
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 1.11-id64-dev (r2540)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> select * from tank_test where match('坦克') ;   //这种写法,根原装的sphinx不一样
+------+--------+------------+------+
| id   | weight | user_id    | u_id |
+------+--------+------------+------+
|    3 |   2230 | 1311895260 |   62 |
|    5 |   2230 | 1311895260 |   33 |
|    4 |   1304 | 1311895262 |    0 |
|    6 |   1304 | 1311895262 |   34 |
+------+--------+------------+------+
4 rows in set (0.00 sec)
mysql> show META;     //上次检索的信息
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| total         | 3     |
| total_found   | 3     |
| time          | 0.000 |
| keyword[0]    | test  |
| docs[0]       | 3     |
| hits[0]       | 5     |
+---------------+-------+
6 rows in set (0.00 sec)
mysql> show tables;    //这里的表其实不是真表,也不是create table创建出来的,是sphinx索引
+--------------+-------------+
| Index        | Type        |
+--------------+-------------+
| dist1        | distributed |
| myorder      | local       |
| rt           | rt          |
| tank_test    | rt          |
| test1        | local       |
| test1stemmed | local       |
+--------------+-------------+
6 rows in set (0.00 sec)
登录后复制

二,创建sphinx索引

1,修改/usr/local/sphinx/etc/sphinx.conf

# vim /usr/local/sphinx/etc/sphinx.conf   //添加以下内容
index tank_test
{
 type            = rt
 path            = /usr/local/sphinx/var/data/rt
 charset_dictpath     = /usr/local/mmseg3/etc/
 charset_type         = zh_cn.utf-8
 ngram_len            = 0
 rt_field        = name
 rt_field        = title
 rt_field        = sub_title
 rt_attr_uint        = user_id
 rt_attr_uint        = uid
}
登录后复制

在这里要注意,rt_field是检索字段,rt_attr_uint是返回字段

2,重启sphinx

# pkill -9 searchd
# /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all
# /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf
登录后复制
登录后复制

3,插入数据,并查看

mysql> show tables;
+--------------+-------------+
| Index        | Type        |
+--------------+-------------+
| dist1        | distributed |
| rt           | rt          |
| tank_test    | rt          |      //新增加的索引
| test1        | local       |
| test1stemmed | local       |
+--------------+-------------+
5 rows in set (0.00 sec)
mysql> desc tank_test;
+-----------+---------+
| Field     | Type    |
+-----------+---------+
| id        | bigint  |
| name      | field   |
| title     | field   |
| sub_title | field   |
| user_id   | integer |
| u_id      | integer |
+-----------+---------+
6 rows in set (0.00 sec)
mysql> insert into tank_test values (3,'坦克','tank is 坦克','技术总监',1311895260,33);
mysql> insert into tank_test values (4,'tank张','tank is 坦克','技术总监',1311895262,34);
mysql> select * from tank_test where match('坦克');    //匹配搜索的字段是rt_field
+------+--------+------------+------+
| id   | weight | user_id    | u_id |                 //返回的字段是rt_attr_uint
+------+--------+------------+------+
|    3 |   2230 | 1311895260 |   33 |
|    4 |   1304 | 1311895262 |   34 |
+------+--------+------------+------+
2 rows in set (0.00 sec)
登录后复制

id和weight是系统自带的返回字段

到这儿索引就创建好了,show tables的时候是可以看新建的tank_test,用phpmyadmin或者其他mysql数据库连接工具根本看不到,原因是他根本不是真实的表。sphinx到底能不能用真实的表呢?

三,创建表,并添加索引

1,创建真实的表,插入数据

CREATE TABLE IF NOT EXISTS `orders` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `user_id` int(11) NOT NULL ,
 `username` varchar(20) NOT NULL,
 `create_time` datetime NOT NULL,
 `product_name` varchar(20) NOT NULL,
 `summary` text NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
INSERT INTO  `orders` (`user_id` ,`username` ,`create_time` ,`product_name` ,`summary`) VALUES
('1311895262','张三','2014-08-01 00:24:54','tank is 坦克','技术总监'),
('1311895263','tank张二','2014-08-01 00:24:54','tank is 坦克','技术经理'),
('1311895264','tank张一','2014-08-01 00:24:54','tank is 坦克','DNB经理'),
('1311895265','tank张','2014-08-01 00:24:54','tank is 坦克','运维总监');
登录后复制

在这里要注意,是连接mysql的3306端口,不是连接coreseek sphinx的9306

2,修改/usr/local/sphinx/etc/sphinx.conf,添加以下内容

source order
{
 type            = mysql
 sql_host        = localhost
 sql_user        = root
 sql_pass        =
 sql_db            = test
 sql_query_pre        = SET NAMES utf8
 sql_query        = \
 SELECT id, user_id, username, UNIX_TIMESTAMP(create_time) AS create_time, product_name, summary  \
 FROM orders
 sql_attr_uint        = user_id
 sql_attr_timestamp    = create_time
 sql_ranged_throttle    = 0
 sql_query_info    = SELECT * FROM orders WHERE id=$id
}
index myorder
{
 source            = order
 path            = /usr/local/sphinx/var/data/myorder
 docinfo        = extern
 mlock            = 0
 morphology        = none
 min_word_len        = 1
 charset_dictpath    = /usr/local/mmseg3/etc/
 charset_type        = zh_cn.utf-8
 ngram_len            = 0
 html_strip        = 0
}
登录后复制

3,重启sphinx

# pkill -9 searchd
# /usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/sphinx.conf --all
# /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf
登录后复制
登录后复制

4,切换到9306,检索测试

mysql> show tables;
+--------------+-------------+
| Index        | Type        |
+--------------+-------------+
| dist1        | distributed |
| myorder      | local       |
| rt           | rt          |
| tank_test    | rt          |
| test1        | local       |
| test1stemmed | local       |
+--------------+-------------+
6 rows in set (0.00 sec)
mysql> desc myorder;
+--------------+-----------+
| Field        | Type      |
+--------------+-----------+
| id           | bigint    |
| username     | field     |
| product_name | field     |
| summary      | field     |
| user_id      | integer   |
| create_time  | timestamp |
+--------------+-----------+
6 rows in set (0.00 sec)
mysql> select * from myorder where match('坦克');
+------+--------+------------+-------------+
| id   | weight | user_id    | create_time |
+------+--------+------------+-------------+
|    5 |   1304 | 1311895262 |  1407081600 |
|    6 |   1304 | 1311895263 |  1406823894 |
|    7 |   1304 | 1311895264 |  1406823894 |
|    8 |   1304 | 1311895265 |  1406823894 |
+------+--------+------------+-------------+
4 rows in set (0.00 sec)
登录后复制
coreseek sphinx 创建表和索引 前面说了,coreseek sphinx mmseg mysql等的安装,下面说一下怎么使用。 一,coreseek sphinx启动后,会多出一个端口,并且可以像mysql一样登录,但不是登录mysql [root@localhost tank]# mysql -h 127.0.0.1 -P 9306 //不是真的连接mysql,而连接了sphinx index Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 1.11-id64-dev (r2540) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or [...]coreseek sphinx 创建表和索引
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在真我手机上创建文件夹? 如何在真我手机上创建文件夹? Mar 23, 2024 pm 02:30 PM

标题:真我手机新手指南:如何在真我手机上创建文件夹?在当今社会,手机已经成为人们生活中必不可少的工具。而真我手机作为一款备受欢迎的智能手机品牌,其简洁、实用的操作系统备受用户喜爱。在使用真我手机的过程中,很多人可能会遇到需要整理手机中的文件和应用的情况,而创建文件夹就是一种有效的方式。本文将介绍如何在真我手机上创建文件夹,帮助用户更好地管理自己的手机内容。第

如何在GIMP中创建像素艺术 如何在GIMP中创建像素艺术 Feb 19, 2024 pm 03:24 PM

本文将引起您的兴趣,如果您有意在Windows上使用GIMP进行像素艺术创作。GIMP是一款著名的图形编辑软件,不仅免费开源,还能帮助用户轻松创建出美丽的图像和设计。除了适用于初学者和专业设计师外,GIMP也可以用于制作像素艺术,这种数字艺术形式是利用像素作为唯一构建块来进行绘制和创作的。如何在GIMP中创建像素艺术以下是在WindowsPC上使用GIMP创建像素图片的主要步骤:下载并安装GIMP,然后启动应用程序。创建一个新的形象。调整宽度和高度的大小。选择铅笔工具。将笔刷类型设置为像素。设置

格力+如何创建家庭 格力+如何创建家庭 Mar 01, 2024 pm 12:40 PM

很多朋友表示想知道在格力+软件里该怎么去创建家庭,下面为大家带来了操作方法,想要了解的朋友和我一起来看看吧。首先,打开手机上的格力+软件,并登录。接着,在页面底部的选项栏中,点击最右边的“我的”选项,即可进入个人账户页面。2.来到我的页面后,在“家庭”下方的选项里有一个“创建家庭”,找到后在它的上面点击进入。3.接下来跳转到创建家庭的页面里,根据提示在输入框里输入要设置的家庭名称,输入好后在右上角点击“保存”按钮。4.最后在页面下方会弹出一个“保存成功”的提示,代表家庭已经成功创建好了。

如何使用Highcharts创建甘特图表 如何使用Highcharts创建甘特图表 Dec 17, 2023 pm 07:23 PM

如何使用Highcharts创建甘特图表,需要具体代码示例引言:甘特图是一种常用于展示项目进度和时间管理的图表形式,能够直观地展示任务的开始时间、结束时间和进度。Highcharts是一款功能强大的JavaScript图表库,提供了丰富的图表类型和灵活的配置选项。本文将介绍如何使用Highcharts创建甘特图表,并给出具体的代码示例。一、Highchart

oracle索引类型有哪些 oracle索引类型有哪些 Nov 16, 2023 am 09:59 AM

oracle索引类型有:1、B-Tree索引;2、位图索引;3、函数索引;4、哈希索引;5、反向键索引;6、局部索引;7、全局索引;8、域索引;9、位图连接索引;10、复合索引。详细介绍:1、B-Tree索引,是一种自平衡的、可以高效地支持并发操作的树形数据结构,在Oracle数据库中,B-Tree索引是最常用的一种索引类型;2、位图索引,是一种基于位图算法的索引类型等等。

如何创建您的 iPhone 联系人海报 如何创建您的 iPhone 联系人海报 Mar 02, 2024 am 11:30 AM

在iOS17中,Apple为其常用的“电话”和“通讯录”应用程序新增了联系人海报功能。这一功能允许用户为每个联系人设置个性化的海报,使通讯录更具可视化和个性化。联系人海报可以帮助用户更快速地识别和定位特定联系人,提高了用户体验。通过这一功能,用户可以根据自己的喜好和需求,为每个联系人添加特定的图片或标识,使通讯录界面更加生动iOS17中的Apple为iPhone用户提供了一种新颖的方式来表达自己,并添加了可个性化的联系海报。联系人海报功能允许您在呼叫其他iPhone用户时展示独特的个性化内容。您

Django初探:用命令行创建你的首个Django项目 Django初探:用命令行创建你的首个Django项目 Feb 19, 2024 am 09:56 AM

Django项目开启之旅:从命令行开始,创建你的第一个Django项目Django是一个强大而又灵活的Web应用框架,它以Python为基础,提供了许多开发Web应用所需的工具和功能。本文将带领你从命令行开始,创建你的第一个Django项目。在开始之前,请确保你已经安装了Python和Django。步骤一:创建项目目录首先,打开命令行窗口,并创建一个新的目录

如何创建mdf文件 如何创建mdf文件 Feb 18, 2024 pm 01:36 PM

MDF文件是一种常见的数据库文件格式,它是MicrosoftSQLServer数据库的主要文件之一。在数据库管理系统中,MDF文件用于保存数据库的主要数据,包括表、索引、存储过程等。建立MDF文件是创建数据库的关键步骤之一,下面将介绍一些常见的方法。使用SQLServerManagementStudio(SSMS)SQLServerManag

See all articles