Sphinx某些时候会找不到搜索结果,使用seach命令进行搜索时发现有如下错误:
index 'xxx': search error: failed to open /data/html/index/xxx.sph: No such file or directory
到该目录下发现出现很多名为xxx.new.sph, xxx.new.spa, xxx.new.spm等文件,
而sphinx配置文件中写的索引路径为/data/html/index/xxx。
可以确定是search寻找的是xxx.sph文件,而indexer或searchd将索引文件命名为xxx.new.sph造成无法检索。
这个问题出现的原因和indexer rotate工作方式有关,具体可以参考http://www.sphinxsearch.com/forum/view.html?id=274。
原因引用如下:
解决方式为:
searchd --stop # 先停掉searchd,注意如果采用kill的方式,要保证/var/log/searchd.pid文件的一致性
index --all # 重建所有索引,可以看到xxx.sph文件又回来了
searchd # 启动searchd服务
index --all --rotate # 试试用rotate命令重建索引
分享到:
相关推荐
SQL全文索引是一种在数据库中实现全文搜索的技术,它允许用户使用自然语言查询数据库,而不仅仅是精确匹配。Sphinx是一个高性能、开源的全文搜索引擎,它为SQL数据库提供了强大的全文索引功能。Sphinx与SQL结合使用...
解决方法是,了解一下 sphinx 的 rotate 机制,indexer 完成索引-发送 SIGHUP 给 searchd(同时在终端输出索引已经完成)-searchd 接到中断信号-等待所有子进程退出-重命名当前索引为旧索引为 .old -重命名 .new 索引...
索引旋转是Sphinx在增量索引过程中的一部分,它涉及到将当前正在使用的索引文件(如`news_delta.spa`)重命名为旧版本(`news_delta.old.spa`),并将新构建的索引文件(`news_delta.new.spa`)重命名为当前版本。...
Sphinx设计的目标是提供一个快速、可扩展的搜索解决方案,它支持实时索引,可以处理大量数据,并且具有高效的数据存储和检索能力。Sphinx的核心特性包括:全文索引、布尔操作符、短语匹配、近似搜索、同义词处理、...
### Sphinx在Linux下的安装与使用方法 #### 一、Sphinx简介 Sphinx是一款开源的全文检索引擎,它可以提供快速的、高效率的全文搜索功能。Sphinx支持多种数据库(如MySQL、PostgreSQL等)以及文件系统等多种数据源...
1. **依赖外部索引**:Sphinx不直接存储数据,而是依赖于外部数据库,这可能会导致索引与实际数据之间的不一致性问题。 2. **配置灵活性较低**:部分配置更改需要重建索引才能生效,增加了维护成本。 3. **中文支持...
这些工具各有用途,例如indexer用于建立索引,searchd用于启动Sphinx的搜索守护进程,search用于执行搜索命令,spelldump用于处理拼写错误,indextool用于索引文件的管理。 在Sphinx的使用过程中,用户会遇到各种...
1. **实时索引**:Sphinx支持实时索引,这意味着新的数据可以即时添加到索引中,几乎无需延迟就能进行搜索。 2. **高性能**:Sphinx设计目标就是提供高速的搜索体验。它的索引速度极快,查询性能也非常优秀。 3. *...
4. 更新PHP配置:将新安装的Sphinx扩展添加到php.ini文件中,例如`extension=sphinx.so`。 5. 重启PHP服务:使改动生效,重启Web服务器(如Apache或Nginx)和PHP-FPM(如果使用)。 当遇到libsphinxclient报错时,...
安装完成后,你可以使用Sphinx提供的函数,如`sphinx_client`,`sphinx_init`,`sphinx_query`等,来进行索引管理、搜索查询以及结果处理。同时,别忘了配置Sphinx服务器,创建索引,并确保服务运行正常。在PHP中,...
索引组件将处理好的词进行排序、去重,并最终构建索引文件。索引过程中,Sphinx可以处理大量的数据,并提供分布式索引构建的能力。 Sphinx索引创建过程的核心在于索引结构的设计。索引结构决定了搜索的效率以及索引...
它可以连接到数据库,抽取数据并生成可供搜索的索引文件。 2. **searchd**:守护进程,管理搜索请求,提供实时搜索服务。它监听网络请求,处理搜索查询,并返回结果。 3. **search**:命令行测试工具,用于验证索引...
2. **配置Sphinx**: 修改`sphinx.conf`配置文件,设置数据源(通常是MySQL)、索引定义、搜索监听端口等参数。对于中文支持,需要配置charset_type为`utf-8`,并使用适合中文分词的词典,例如`dict=cpphash`或`dict=...
2. **高速搜索**:在 2-4GB 的文本量中,平均查询速度不到 0.1 秒。 3. **高可用性**:单 CPU 可支持高达 100GB 的文本和 100M 文档。 4. **良好的相关性排名**:支持复杂的排名算法,确保搜索结果的相关性。 5. **...
8. **跨引用和索引**:Sphinx支持在文档中创建内部链接和索引条目,便于读者快速跳转到相关部分。 9. **国际化与多语种支持**:Sphinx可以通过`babel`支持多语言文档,轻松创建和维护不同语言版本的文档。 10. **...
通过Sphinx的实时索引和分布式搜索能力,可以大大提高用户体验,降低服务器负载。 总结来说,PHP7.3版本的Sphinx扩展为开发人员提供了便捷的接口,以利用Sphinx的全文搜索功能。然而,开发者需要注意扩展与PHP版本...
2. **配置Sphinx**: 创建Sphinx配置文件,定义索引等参数。 3. **生成索引**: 使用Sphinx工具生成全文索引。 4. **启动Sphinx服务**: - 启动命令: `searchd -c <配置文件路径> [-p <端口号>] [--pidfile 文件路径>]...
在 `sphinx-2.2.11-release` 目录下,你可以找到 `README` 文件,其中详细描述了如何编译和安装 Sphinx。通常,你需要先配置项目,然后编译源代码,最后进行安装。配置步骤可能包括设置安装路径、数据库连接信息等...