sphinx 使用

Sphinx sphinx-quickstart sphinx-apidoc auto generate API documents Sphinx uses reStructuredText as its markup language. The process of Sphinx generating documents is like this:Project source code (Python or other supported languages)->reStructuredText files ->documents (HTML or other supported format)Sphinx provides two c 阅读详情

sphinx使用步骤:

1、安装

windows

直接解压就可以了

linux

源码安装

2、配置

SQL 结构化查询语言   MYSQL数据库  oracle数据库 sqlserver数据库 但是这三个数据库都要遵循SQL规则

 

理解配置文件的结构

source ecshop{

}

 

index mygoods{

}

source ecshop1{

}

 

index mygoods1{

source            = ecshop1 指定索引用户哪个数据源

}

 

indexer{

mem_limit            = 128M

}

searchd{

 

}

注意:

1、数据库配置和索引配置必须成对出现可以有多个

2、sql_query_pre 这个参数可以多个,主要是在执行主查询之前进行的操作

3、sql_query 这个主查询,主要从MYSQL数据库中拿到要建立索引的数据,

   sql_query = select 必须是主键,搜索的字段名,搜索的字段名 from 表名

4、sql_attr_uint 设置属性 ,可以多个,属性字段必须在主查询时查询出来

   [matches] => Array

(

    [29] => Array

(

    [weight] => 1

    [attrs] => Array

(

    [cat_id] => 14  设置属性

)

 

)

 

    [30] => Array

(

    [weight] => 1

    [attrs] => Array

(

    [cat_id] => 14

)

 

)

 

)

 

3、生成索引

Indexer.exe  -c 配置文件  参数(--all 表示所有的索引 | 索引名称)

indexer.exe  -c .\etc\csft_mysql.conf --all

indexer.exe  -c .\etc\csft_mysql.conf mygoods(索引名称)

4、开启searchd服务  端口号默认是9312

searchd.exe -c .\etc\csft_mysql.conf

注意:

   如果开启服务后,再次重新建立索引,需要重启服务

5、引入sphinxapi接口或者安装sphinx扩展

 

6、进行实例化对象,查询数据

require "sphinxapi.php";

 

$sphinxapi = new SphinxClient(); 

$sphinxapi->SetServer('127.0.0.1', 9312); 

$result = $sphinxapi->Query('移动', 'mygoods'); 

print_r($result); 

 

 

案例:

比如:一个论坛,数据量比较大,此时采用sphinx全文搜索进行优化,

遇到一个问题是: 论坛中的贴子每天都会增加

比如:

贴子表中,有1000条记录

我们建立索引

 

第二天:

又增加1000条记录

这时怎么处理

 

我们又要重新创建索引

第n天:

贴子数量达到1亿条

我们又要重新创建索引

解决办法:

使用   增量索引

 

增量索引的原理:

原有一个主索引  1000条记录  

增加的1000条记录 生成一个增量索引

然后将增量索引的数据合并到主索引

 

增量索引怎么使用:

 

1、配置增量索引

主数据源

source delta{

}

主索引

index main{

} 

 

增量数据源

source deltasrc:delta{

}

增量索引

index delta: main //增量索引{

./bin/indexer --merge test1 test1stemmed  --rotate

source = deltasrc

}

注意:

名称不要有下划线(有可能是这样)

 

如果文件名为 csft.conf 这是 ./bin/indexer --merge  zengmy company --rotatesphinx默认的文件名

 

这样就不用在indexer -c 配置文件名(可以省略)  --all

 

2、生成增量索引

./bin/indexer 增量索引文件名 

3、合并增量索引和主索引

./bin/indexer --merge 增量索引文件名 主索引文件名 --rotate(平滑启动searchd服务)

 

到此:增量索引完毕(增量索引只解决了一次性创建比较多数据慢的问题,但是解决不了自动更新索引问题)

 

增量索引+LINUX中的计划任务(又叫实时索引)--可以解决实时更新的问题

s

新增一个计数表:

sph_count

id  max_id

1     7

增量配置

source zengcom:company

{

 sql_query    = SELECT id,name,address FROM company where id > select max_id from sph_count where id = 1

 sql_query_info_pre = 更新sph_count的SQL语句

  update count set max_id =select max(id) from company

}

 

 

 

创建LINUX计划任务,每隔5分钟自动执行下面两条语句(最好是创建一个shell脚本,因为在LINUX中计划任务有很多,这样方便修改和维护)

 

./bin/indexer 增量索引文件名

./bin/indexer --merge 增量索引文件名 主索引文件名 --rotate(平滑启动searchd服务)

sphinx增量索引的一个问题 但最近发现增量的总是搜索不到,今天看了下运行日志,有如下提示: [Sun Apr 17 19:30:01.876 2011] [ 3400] WARNING: rotating index ‘news_delta’: cur to old rename failed: rename /dev/shm/sphinx/data/news_delta.spa to /dev/shm/sphinx/data/news_delta.old.spa failed: No such file or directory [Sun Apr 17 19:30:01.881 2011] [ 3400] WARNIN 立即下载

相关推荐

机器学习实例(预测房价中位数)(附代码)

1、下载数据: 下载一个压缩文件housing.tgz即可,其包含housing.csv(已经包含书有数据。),用 tax xzf housing.tgz 来解压提取CSV文件。 import os import tarfile import urllib.request DOWNLOAD_ROOT = "https://raw.githubusercontent.com/ageron/handson-ml2/master/" HOUSING_PATH = os.path.join("datasets",

qq_51153436的博客 2761

[搜索引擎]Sphinx的介绍和原理探索

What/Sphinx是什么 定义 Sphinx是一个全文检索引擎。 特性 索引和性能优异 易于集成SQL和XML数据源,并可使用SphinxAPI、SphinxQL或者SphinxSE搜索接口 易于通过分布式搜索进行扩展 高速的索引建立(在当代CPU上,峰值性能可达到10 ~ 15MB/秒) 高性能的搜索 (在1.2G文本,100万条文档上进行搜索,支持高达每秒15...

weixin_30254435的博客 845

【MCU】一种基于RTOS的无应答重发机制

文章目录一、背景描述二、结构框图三、基于RTOS的信号量的实现(3-1)思路描述(3-2)步骤(3-2-1)定义超时重发信号量(3-2-2)定义发送线程入口(3-2-3)定义接收线程入口四、基于定时器的实现(4-1)思路描述(4-2)步骤(4-2-1)创建定时器(4-2-2)定义定时器超时处理函数(4-2-3)定义发送线程入口(4-2-4)定义接收线程入口 一、背景描述 ​ 在微控制器之间进行数据通信时,大多需要添加无应答重发机制,以增强数据交互和通信的稳定性。 在使用UART通信的双方设备,当一次数据传输

iriczhao的博客 1523

Sphinx速成指南

Sphinx速成指南版权 © 2008 Dony,tappony(at)gmail.com>,版权所有,转载请声明来源与作者2008-01-11目录1.Sphinx简介 1.1.什么是全文检索 1.2.介绍 1.3.Sphinx的特性 2.Sphinx安装(For MySQL) 2.1.Windows下安装 2.2.Linux下安装 3.实例说明 4.Sphinx配置 5.运行Sphinx 6.搜索(翻译) 6.1.匹配模式 6.2.布尔查询语法(Boolean query synt

大鹏 1345

Arm CCA架构:硬件级机密计算与安全隔离技术解析

机密计算(Confidential Computing)通过硬件级隔离技术构建可信执行环境(TEE),是当前云安全和数据隐私保护的核心方案。Armv9-A引入的CCA架构采用物理地址空间隔离和Granule保护表(GPT)机制,实现4KB颗粒度的内存访问控制。该技术通过标准化的RMI/RSI接口规范,为虚拟化环境和安全敏感应用提供硬件级保护,特别适用于金融交易、医疗数据处理等需要严格隔离的场景。相比传统TEE方案,Arm CCA在隔离等级和动态权限管理方面具有显著优势,其Realm World设计为机密计算

weixin_30905133的博客 566

域格4G网优模块获取

1、获取当前小区信息 接口说明 该命令用于获取当前小区信息。 语法结构 命令类型 格式 返回结果 Execute AT+SCELLINFO +SCELLINFO: <cellMode>,<mcc>,<mnc>,<lac>,<cellId>,<afrcn>,<cpi>,<rxLevel>

自由的幻想 2464

sphinx

一、Introduction sphinx是一个独立的搜索引擎,为其他应用提供高速、低空间占用、高结果相关度的全文搜索功能。sphinx可以非常容易的与sql数据库和脚本语言集成。 搜索api支持php、python、perl、ruby和java,并且也可以用作mysql存储引擎。 coreseek全文检索服务器2.0是在sphinx基础上开发的全文检索软件,按照GPLv2协议发行。中文版的...

HelloWorld 5187

C#串口通信从入门到精通(21)——一个串口多线程发送数据

本文详细介绍了串口通信中采用多线程发送串口数据的解决方案,由多年实战经验总结,绝对干货!

qq_34059233的博客 3691

sphinx+reStructuredText制作文档

1 spinx简介 Sphinx 是一种文档工具,它可以令人轻松的撰写出清晰且优美的文档, 由 Georg Brandl 在BSD 许可证下开发. 新版的Python文档 就是由Sphinx生成的,并且它已成为Python项目首选的文档工具,同时它对 C/C++ 项目也有很好的支持; 并计划对其它开发语言添加特殊支持. 本站当然也是使用 Sphinx 生成的,它采用reStructuredTex...

weixin_33720452的博客 625

【RT-DETR实战】159、改进九:知识蒸馏从YOLOv8教师模型学习

摘要: 本文探讨了知识蒸馏在RT-DETR目标检测模型中的应用挑战与实践经验。作者以YOLOv8作为教师模型,针对特征对齐、损失函数设计和训练策略等核心问题,提出了适配器模块、动态权重调整和多阶段训练等优化方案。文章重点分析了教师模型选择、特征图匹配、损失函数组合等关键环节的实战技巧,并总结了蒸馏模型部署时的注意事项。通过实验验证,作者指出知识蒸馏应关注模型"思维方式"的迁移而非简单特征复制,并强调合理评估指标和教师模型选择的重要性。最后,作者分享了技术迭代中的边际效应认知,为工业场景下的模型优化提供了实用

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 268

国科大学习资料--人工智能原理与算法-第六次作业解析(学长整理)

国科大学习资料–人工智能原理与算法-第六次作业解析(张文生老师主讲)(6.6、6.7、6.11) 6.6 说明如何通过使用辅助变量把诸如A+B=C这样的三元约束转变成三个二元约束。假设值域是有限的。(提示:考虑引进新变量表示变量对的值,引进约束如“X是Y变量对中的第一个元素”。)然后说明如何把多于三个变量的约束类似地转换为二元约束。说明如何通过改变变量的值域来消除一元约束。这就完整演示了任何CSP都可以转变为只含二元约束的CSP。 答:首先,我们引入一个新变量AB,假设A和B的范围均为N,AB的范围为N×N

无名何许人的博客 2870

Sphinx中文指南

1、简介 1.1.Sphinx是什么 1.2.Sphinx的特性 1.3.Sphinx中文分词 2、安装配置实例 2.1 在GNU/Linux/unix系统上安装 2.1.1 sphinx安装 2.1.2.sfc安装(见另文) 2.1.3.coreseek安装(见另文) 2.2 在windows下安装 3、

5271

手把手教你安装 OpenClaw 小龙虾(MAC安装教程),一次成功不踩坑

本文详细介绍了在Mac上安装OpenClaw的完整流程。主要内容包括:1)准备工作(磁盘空间、网络环境、终端工具);2)安装Homebrew包管理器及常见问题解决;3)安装Node.js 22+版本(环境核心);4)Git安装与验证;5)OpenClaw项目克隆、依赖安装及运行配置;6)大模型配置方法(以MiniMax为例)。文章提供了详细的命令行操作步骤和常见错误解决方案,特别强调了网络环境要求和Apple Silicon芯片的原生支持注意事项。最后展示了验证配置成功的方法和资源获取渠道。

Chengbei11的博客 6341

Sphinx 使用指南

介绍怎样使用Sphinx管理自己的源文档

lurenze的博客 2582

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

sphinx基本使用

sphix是一个文档生成工具本文介绍一些基础技能,如果想深入学习,可以查看官方文档。

传播知识,分享快乐! 1552

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Sphinx-Design 使用教程

Sphinx-Design 使用教程 项目介绍 Sphinx-Design 是一个用于设计美观、屏幕尺寸响应式网页组件的 Sphinx 扩展。它受到 Bootstrap (v5)、Material Design 和 Material-UI 设计框架的启发,旨在为 Sphinx 文档提供丰富的 UI 组件。 项目快速启动 安装 首先,通过 pip 安装 sphinx-design 扩展: pip i...

gitblog_00084的博客 1035

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

php怎么样sphinx,php使用sphinx

2.使用sphinx php api测试:

weixin_39654352的博客 115

thinkphp使用sphinx使用

晚来的国庆快乐,向大家抱歉,国庆在家玩了几天,接到任务,优化搜索, 然后怎么办呢,在家里要打扫卫生,要做饭,忙不过啊,于是晚上搞到半夜1,2点查阅sphinx资料 当然是一大堆百度啊,前人栽树,后人乘凉啊, 苦心人天不负百二秦关终属楚,无薪尝胆可吞吴,不多扯,下面就让我为大家介绍windows的sphinx的使用. first step: 在sphinx官网上下载sphinx http...

贫僧法号名藏的博客 4723

使用travis-sphinx自动化部署Sphinx文档指南

使用travis-sphinx自动化部署Sphinx文档指南 项目介绍 travis-sphinx 是一个便捷脚本,专为通过Travis CI自动构建和部署Sphinx文档设计。它简化了技术写作发布流程,特别是对于频繁更新或需要即时查看更改效果的项目。此工具为开发人员提供了从构建到部署GitHub Pages上文档的一站式解决方案,无需手动操作,极大提升了文档维护的效率。 项目快速启动 要迅速开始...

gitblog_00190的博客 555

使用sphinx生成美观的文档

先上效果图 详情 首先,需要知道什么是restructuredtext,可以理解为类似于markdown的一个东西。 然后 安装,pip install sphinx 进入存放文档的目录,在命令行,sphinx-quickstart ,根据需要一路回车,会生成一堆东西,包括conf.py和make等根据需要修改conf.py编写rst文件,比如默认的index.r

mattkang 1万+

Sphinx使用方法

1 spinx简介 Sphinx 是一种文档工具,它可以令人轻松的撰写出清晰且优美的文档, 由 Georg Brandl 在BSD 许可证下开发. 新版的Python文档 就是由Sphinx生成的, 并且它已成为Python项目首选的文档工具,同时它对 C/C++ 项目也有很好的支持; 并计划对其它开发语言添加特殊支持. 本站当然也是使用 Sphinx 生成的, 它采用reStructuredT...

时有限 4754

Sphinx在windows下安装使用

Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <object class

斯人博客|PHP高级教程|C++|Javascript 1万+

sphinx的安装以及使用

1.Sphinx简介 1.1.Sphinx是什么 Sphinx是由俄罗斯人Andrew Aksyonoff开发的一个全文检索引擎。意图为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。Sphinx可以非常容易的与SQL数据库和脚本语言集成。当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式 的XML数据。通过修改源代码,用户可以自行增加新...

lchmyhua88的博客 461

Sphinx使用说明

link:https://blog.youkuaiyun.com/sinat_29957455/article/details/83657029 1. 安装插件: pip3 install sphinx pip3 install sphinx_rtd_theme 2. 新建一个项目: 3. 使用sphinx建立API文档项目: 进入到doc目录下,输入sphinx-quickstart命令,会输出选项。 注意看图中需要输入的内容! 项目创建后目录结构如下: build:用来存放通过make html生成文档网页

McGrady_Durant的博客 2040

Sphinx Markdown Builder 使用教程

Sphinx Markdown Builder 使用教程 项目介绍 Sphinx Markdown Builder 是一个 Sphinx 扩展,用于生成 Markdown 文件。该项目最初由 Jam Risser 开发,目前已被 Clay Risser 接管并维护。尽管该项目已被标记为不再维护,但它的功能仍然可以用于将 Sphinx 文档转换为 Markdown 格式。 项目快速启动 安装 首先,...

gitblog_00038的博客 689

java 使用sphinx

我整理的一些关于【Python】的项目学习资料(附讲解~~)和大家一起分享、学习一下:https://d.51cto.com/Hpqqk2Java 使用 Sphinx 进行文档生成 在软件开发中,文档的生成与维护是一个重要的环节。文档不仅帮助开发者理解代码,还可以作为与其他团队成员沟通的桥梁。Sphinx 是一个用于生成...

weixin_40491557的博客 231
上一篇: nginx配置文件详解
下一篇: php 环境安装(源码包)
csdn_ndx
博客等级 码龄12年 6粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值