首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

非整数主键需要 sphinx 配置

非整数主键需要 Sphinx 配置

Sphinx 是一款开源的全文搜索引擎,它可以帮助用户快速地在大量数据中进行搜索。在使用 Sphinx 进行全文搜索时,需要对数据进行索引。在这个过程中,需要指定一个主键来唯一标识每个数据项。如果数据表中的主键不是整数类型,需要进行一些额外的配置。

以下是一些可能需要配置的内容:

  1. 主键类型:在 Sphinx 配置文件中,需要指定主键的类型。例如,如果主键是字符串类型,可以使用 sql_attr_str2ordinal 指令将其转换为整数。
  2. 主键排序:在 Sphinx 中,默认情况下会按照主键的升序进行排序。如果需要按照其他字段进行排序,可以使用 sql_attr_multi 指令来指定多个排序字段。
  3. 主键唯一性:在 Sphinx 中,主键必须是唯一的。如果数据表中存在重复的主键,需要在 Sphinx 配置文件中使用 sql_query_killlist 指令来过滤掉重复的主键。

总之,如果需要在 Sphinx 中使用非整数主键,需要进行一些额外的配置工作。具体的配置方法取决于主键的类型和需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Sphinx&coreseek实现中文分词索引

    简介 众所周知,mysql等数据库的LIKE模糊搜索不支持索引,因此查询效率极低,需要结合第三方索引引擎程序(索引程序)来提高查询性能。...Sphinx服务器查询,sphinx返回查询结果在原数据库表中的id(主键) step4: 查询程序根据返回的主键id在原数据库中取出相应记录 3....# 修改配置文件 $ cd /usr/local/sphinx/etc $ cp sphinx.conf.dist sphinx.conf $ vim sphinx.conf # 修改配置 # 导入etc...安装包解压后得到两个目录csft和mmseg,csft-xxx相当于sphinx安装目录,mmseg-xxx为中文分词安装包 # 安装中文分词库 cd mmseg-xxx,可能需要额外按照automake...相关配置 5.1 配置文件格式 sphinx.conf的内容组成格式为: source { … } index { source = … } source

    1.6K64

    CentOS7下安装Sphinx 中文分词【PHP+MySQL】

    我们需要sphinx.conf.dist复制并重命名为sphinx.conf cp sphinx.conf.dist sphinx.conf ? 然后边距sphinx.conf文件: vim ..../sphinx.conf 此文件是需要填写一些配置(包括数据库信息的配置,索引的一些配置)等等。...值得说的是:sql_query 是你要查询的字段,也就是一段select语句,注意着语句要包括主键!.../data/ } 这个可以理解成接口的一些配置信息(这样说不对), 反正就是需要配置好了之后,接口才能使用。...如图所示,返回的是id,该id是你的表的主键。 每当数据库变动时,需要重新执行索引,不然搜索只会是以前的数据。【重要事情说三遍】 每当数据库变动时,需要重新执行索引,不然搜索只会是以前的数据。

    1.8K20

    coreseek_coreone

    SQL 结构化查询语言(是一种标准,所有的关系型数据库Mysql,sqlserver,oracle) sphinx的使用两种方式: 第一种: 使用sphinx的API来操作sphinx (常用...) sphinx可以使用API类,也可以将api编译到PHP中做为扩展 第二种: 使用mysql的sphinx的存储引擎 sphinx 这是英文的全文检索引擎 coreseek...:/usr/local/coreseek-3.2.14-win32 2、配置(配置文件 csft_mysql.conf) 配置文件格式 1、数据源定义 (指向你数据的来源 ,通常是mysql...) 2、索引 (索引的一些配置信息) 3、indexer (内用的内存—基本不需要设置) 4、searchd (服务器的一些配置—) 注意:...select 第一个字段(一定是主键) 3、indexer.exe -c 配置文件 –all(参数–all 表示创建全部索引) .

    26120

    php简单使用sphinx 以及增量索引和主索引来实现索引的实时更新

    \bin\下,并重命名为sphinx.conf; 修改E:\PRO\2\sphinx\bin\sphinx.conf文件的数据库配置,这里根据自己的情况进行配置即可(如下图) bin 目录 Minimal...#获取数据源表最大的主键id 插入到sph_counter表做标记 #使用多次查询,那么这个多次查询就需要有个范围和步长,sql_query_range和sql_range_step...E:\PRO\2\sphinx\bin\indexer.exe -c E:\PRO\2\sphinx\bin\sphinx.conf article_delta 如果运行上述命令行有错误,则根据错误提示去改动配置文件即可...(有错误就根据错误提示去更改配置文件): sphinx 启动成功如图 下面我们去完善搜索界面,前端代码 test.php <?...\PRO\2\sphinx\bin\sphinx.conf --merge article_main article_delta --rotate 加入到windows 任务计划启动即可(需要优化bat

    1K30

    数据库性能优化,原来还可以有这种操作

    添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引] 较频繁的作为查询条件字段应该创建索引; 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件; 更新非常频繁的字段不适合创建索引...不会出现在WHERE子句中的字段不该创建索引 分表技术(水平分割、垂直分割); 读写[写: update/delete/add]分离; 存储过程 [模块化编程,可以提高速度]; 对mysql配置优化...[配置最大并发数my.ini, 调整缓存大小 ]; mysql服务器硬件升级; 定时的去清除不需要的数据,定时进行碎片整理(MyISAM)。...03 索引 索引的类型 主键索引,主键自动的为主索引 (类型Primary); 唯一索引 (UNIQUE); 普通索引 (INDEX); 全文索引 (FULLTEXT) [适用于MyISAM] ——》sphinx...+ 中文分词 coreseek [sphinx 的中文版 ]; 综合使用=>复合索引 可能使用到索引 对于创建的多列索引,只要查询条件使用了最左边的列,索引一般就会被使用。

    34210

    【迅搜19】扩展(二)TNTSearch和JiebaPHP方案

    需要配置文件,直接在代码中配置即可。注释也都写清楚了,所以也就不多做解释啦! 索引操作 有了上面的配置之后,我们就可以开始来操作索引了。...这种搜索引擎的使用方式,就是通过检索返回的主键 ID ,再去数据库进行主键查询获取完整的数据。因为主键在数据库中有着非常好的查询性能,因此,即使上亿的量,使用主键也是非常快的。...用过 Sphinx 的小伙伴对这种查询方式一定不会陌生,而如果你之前没用过 Sphinx 也没关系,试试 TNTSearch ,如果未来有可能用到 Sphinx 了,也会马上就能上手了。...而 TNTSearch 和 Sphinx 这种则是另一种形式的,只返回主键 ID ,而且它们都和关系型数据的关系比较好,一般直接通过非常类似操作 SQL 语句一样的方式来操作索引。...这里还需要过多解释吗?在 wordlist 中,对 term 这个字段,也就是分词词项建了个索引。然后在 doclist 中,又对 term_id 建立了索引。

    25610

    使用PHP+Sphinx建立高效的站内搜索引擎

    使用Sphinx 我要使用Sphinx需要做以下几件事 1)        首先得有数据 2)        建立Sphinx配置文件 3)        生成索引 4)        启动Sphinx...第2件:(建立配置文件) 接下来我们需要建立一个Sphinx配置文件 E:\coreseek\etc\mysql.conf,将其内容改为下面这些: source mysql {        type...:select 的字段必须包括一个唯一主键以及要全文检索的字段,where中要用到的字段也要select出来 sql_query_pre 在执行sql_query前执行的sql命令, 可以有多条 sql_attr...在使用LibMMSeg作为分词 库时,需要确保词典文件uni.lib在指定的目录下 charset_type 字符集,比如charset_type = zh_cn.gbk searchd{} sphinx...好了,配置文件就这样,配置的参数还有很多,大家可以自己查文档。

    2.3K10

    PHP+MySQL+sphinx+scws实现全文检索功能详解

    sphinx 配置文件在/usr/local/sphinx2/etc cp sphinx-min.conf.dist sphinx.conf source users { type = mysql...sphinx 配置文件解析 source:数据源,数据是从什么地方来的。 index:索引,当有数据源之后,从数据源处构建索引。索引实际上就是相当于一个字典检索。...## 默认情况下字符类型的属性是1KB,字符类型的属性是1MB。 ## 而如果想要配置这个buffer的话,就可以在这里进行配置了。...## 我们进行索引一般只会返回主键id,而不会返回表中的所有字段。 ## 但是在调试的时候,我们一般需要返回表中的字段,那这个时候,就需要使用sql_query_info。...# ondisk_dict = 1 ## 由于在索引建立的时候,需要建立临时文件和和副本,还有旧的索引 ## 这个时候磁盘使用量会暴增,于是有个方法是临时文件重复利用 ## 这个配置会极大减少建立索引时候的磁盘压力

    2.7K32

    Mysql中MyISAM引擎和InnoDB引擎的比较

    这个问题是没有定论的,需要根据你的需求和环境来衡量。所以对这两种引擎的概念、原理、异同和各自的优劣点有了详细的了解之后,再根据自己的情况选择起来就容易多了。...所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB 存储空间 MyISAM可被压缩,存储空间较小 InnoDB的表需要更多的内存和存储...但是InnoDB的行锁,只是在WHERE的主键是有效的,主键的WHERE都会锁全表的 外键 不支持 支持 FULLTEXT全文索引 支持 不支持 可以通过使用Sphinx从InnoDB中获得全文索引,...因为MyISAM保存了表的具体行数 InnoDB没有保存表的具体行数,需要逐行扫描统计,就很慢了 COUNT with WHERE 一样 一样,InnoDB也会锁表 锁 只支持表锁 支持表锁、行锁...但是InnoDB的行锁,只是在WHERE的主键是有效的,主键的WHERE都会锁全表的 外键 不支持 支持 FULLTEXT全文索引 支持 不支持 可以通过使用Sphinx从InnoDB中获得全文索引

    1.4K60

    数据库设计规范

    2.5 所有表都必须显式指定主键 主键尽量采用自增方式,InnoDB表实际是一棵索引组织表,顺序存储可以提高存取效率,充分利用磁盘空间。还有对一些复杂查询可能需要自连接来优化时需要用到。...对于主键字段值是从其它地方插入(自己使用AUTO_INCREMENT生产),去掉AUTO_INCREMENT定义。...如果在varbinary或blob这种以二进制存储的列上建立前缀索引,要考虑字符集,括号里表示的是字节数 4.7 合理使用覆盖索引减少I/O InnoDB存储引擎中,secondary index(主键索引...如果用户需要查询secondary index中所不包含的数据列,则需要先通过secondary index查找到主键值,然后再通过主键查询到其他数据列,因此需要查询两次。...,不做类型转换 两个参数都是整数,按照整数来比较,不做类型转换 十六进制的值和数字做比较时,会被当做二进制串 有一个参数是timestamp或datetime,并且另外一个参数是常量,常量会被转换为

    1.3K20

    shpinx的安装与使用测试

    | |-sphinx-min.conf.dist | |-sphinx.conf.dist |-misc\ |-src\ 配置 sphinx的示例配置文件在etc文件夹中。...复制sphinx-min.conf.dict 到sphinx.conf 主索引配置。对于中文,source中需要指定sql连接字符集,避免拿到的数据是乱码。...在生成主索引的同时,我们还需要更新所以最后创建时间,因此需要一些额外操作。可以使用sql_query_post执行指定的sql语句,将数据保存到数据库中。...,但建立索引花费的时间越长 ngram_len:对于字母型数据的长度切割(默认已字符和数字切割,设置1为按没个字母切割) ngram_chars:ngram 字符集,中文需要配置 kbatch:屏蔽索引的列表...测试代码以及sphinx配置地址:http://blog.static.aiaiaini.com/sphinx-demo-config.rar

    82030

    mysql学习总结08 — 优化(设计层)-索引与分区分表

    主键索引:索引中存储主键id (指向对主键的引用),而myisam的主键/主键索引都指向物理地址。...1.8 索引覆盖 如果查询的列恰好是索引的一部分,那么查询只需在索引区进行,不需要到数据区再找数据,速度非常快。负面影响是增加了索引尺寸。...mysql> select count(distinct left(id,9)) from t1; 1.13 全文索引 全文索引把内容中的一些单词(简单单词)拆分作为索引字段使用,可以解决模糊查询不能使用索引的问题...sphinx 生产活动中不常用,可以通过sphinx代替 全文索引有额外操作,对常用单词不建索引 2....3.1 水平分表 物理方式分表,程序需要考虑分表算法,即判断读写的表。 比如,根据id参数来选择对应的表 <?

    59840

    mysql学习总结08 — 优化(设计层)-索引与分区分表

    主键索引:索引中存储主键id (指向对主键的引用),而myisam的主键/主键索引都指向物理地址。...1.8 索引覆盖 如果查询的列恰好是索引的一部分,那么查询只需在索引区进行,不需要到数据区再找数据,速度非常快。负面影响是增加了索引尺寸。...mysql> select count(distinct left(id,9)) from t1; 1.13 全文索引 全文索引把内容中的一些单词(简单单词)拆分作为索引字段使用,可以解决模糊查询不能使用索引的问题...sphinx 生产活动中不常用,可以通过sphinx代替 全文索引有额外操作,对常用单词不建索引 2....3.1 水平分表 物理方式分表,程序需要考虑分表算法,即判断读写的表。 比如,根据id参数来选择对应的表 <?

    2K400

    如何在CentOS 7上安装和配置Sphinx

    它将为您提供有关如何将Sphinx用于您的项目的基本知识。 准备 在开始本指南之前,您需要: 一台CentOS 7服务器。...一个可使用sudo权限的root用户。 将MySQL安装在您的服务器上。...第1步 - 安装Sphinx 您可以在Sphinx网站上找到最新版本。 在安装Sphinx之前,首先需要安装它的依赖项。...接下来,我们将自定义Sphinx配置。 第3步 - 配置Sphinx Sphinx配置应该在/etc/sphinx中一个名为sphinx.conf的文件中。配置由3个主要块组成:索引,搜索和源。...已经提供了最小配置,但我们将提供一个新的示例配置文件供您使用并解释每个部分,以便您以后可以自定义。 首先,移动现有sphinx.conf文件。

    2.8K23

    从MyISAM转到InnoDB需要注意什么

    总的来说,从MyISAM转向InnoDB的注意事项有: 1、MyISAM的主键索引中,可以在第一列(第一个字段)使用自增列,而InnoDB的主键索引中包含自增列时,必须在最前面;这个特性在discuz...论坛中,被设计用于“抢楼”功能,因此,若有类似的业务,则无法将该表从MyISAM转成InnoDB,需要自行变通实现(我们则是将其改到Redis中实现); 2、不带条件频繁统计全表总记录数时(SELECT...如果是基于索引条件的统计,则二者相差不大; 3、InnoDB在5.6以前不支持全文索引,不过这个相信无所谓,没什么人会在MySQL里直接跑全文索引,尤其是对中文的全文索引(前阵子有开发同学提需求直接被我否了),确实有需要的话...,可以采用Sphinx、Lucene等其他方案实现; 4、一次性导入大量数据并且后续还要进行加工处理的,可以先导入到MyISAM引擎表中,经过一通加工处理完后,再导入InnoDB表(我曾经在业务中用此方法提高数据批量导入及处理效率...MyISAM转成InnoDB可以享受的好处则有: 1、完整事务特性支持,以及更高的数据并发存取效率,即更高的TPS; 2、数据库实例异常重启后,InnoDB表能自动修复,而且速度相对更快,而MyISAM需要被触发才能修复

    1.1K140
    领券