搜尋
首頁資料庫mysql教程如何将Sphinx配置成缓存服务器
如何将Sphinx配置成缓存服务器Jun 07, 2016 pm 04:28 PM
sphinx如何伺服器知道快取配置

大家都知道Sphinx是一个全文索引程序,它的高速查询能力也是有目共睹的。除了这些,我们是否还能挖掘点别的功能出来呢?不如作为一个简单的缓存服务器。 先来了解下Sphinx的使用的文件,Sphinx使用的文件包括 .sph, .spa, .spi, .spd, .spp, .spm ,.spl

大家都知道Sphinx是一个全文索引程序,它的高速查询能力也是有目共睹的。除了这些,我们是否还能挖掘点别的功能出来呢?不如作为一个简单的缓存服务器。

Sphinx

先来了解下Sphinx的使用的文件,Sphinx使用的文件包括 .sph, .spa, .spi, .spd, .spp, .spm ,.spl。

  • sph:头文件,保存的是系统的配置文件。
  • spi:保存WordId及指向此WordId对应的文档信息在spd文件的指针, spi文件在检索程序启动时完全加载入内存。 spi文件是分块的,块内排序,块之间也排序。分块的目的应该是为了快速检索到WordId, 因为spi中的WordId是变长压缩的,索引需要先在块级别做二分定位,再在快内解压缩查找。
  • spa:存储DocInfo的文件,检索程序启动时会把此文件加载如内存,sphinx可以指定DocInfo的存储方式:
    • inline:存储到spd文件中。
    • extern:单独存储,就会生成spa文件。
  • spd:文档列表。
  • spp:关键字所在位置列表。
  • spm:在DocInfo中,有一种特殊的属性,叫MVA,多值属性。 Sphinx对此属性特殊处理,需要存储在spm文件中。 检索程序启动时会把此文件加载如内存。 此属性在DocInfo对应位置存储其在此文件中的字节偏移量。
  • spk:killlist
  • spl:索引锁

通过介绍可以得知Sphinx存储的文档的属性,在0.98之前的版本是不存储的,我们是不是可以利用这些数据作为缓存使用呢,根据DocID获取文档的信息。

通过hack搜索服务添加SEARCHD_COMMAND_DOCINFO指令,客户端API添加GetDocinfo函数可以达到预期的效果。

php示例代码:

require 'sphinxapi.php';
$cl = new SphinxClient ();
$cl->SetServer();
$res = $cl->GetDocinfo(1, 'singer');
print_r($res);

结果如下:

Array
(
    [singer_id] => 1
    [singer_name] => 阿牛
    [cate_id] => 1
    [tag_ids] => Array
        (
            [0] => 110
            [1] => 114
            [2] => 127
        )
    [song_number] => 137
    [album_number] => 14
)

Patch文件 : https://gist.github.com/2251422

参考文章

  • sphinx简析
  • sphinx的spx文件格式
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何使用php扩展Sphinx进行全文搜索如何使用php扩展Sphinx进行全文搜索Jul 29, 2023 am 10:05 AM

如何使用PHP扩展Sphinx进行全文搜索全文搜索是现代Web应用程序中的常见需求之一。为了满足用户对数据的高效查询和检索,我们可以使用Sphinx这个功能强大的开源搜索引擎来实现全文搜索功能。Sphinx使用C++编写,提供了PHP的扩展,方便我们在PHP项目中使用。本文将介绍如何使用PHP扩展Sphinx进行全文搜索

如何在Nginx配置Cookie安全策略如何在Nginx配置Cookie安全策略Jun 10, 2023 pm 12:54 PM

随着互联网的不断发展和普及,Web应用程序已成为人们日常生活中必不可少的一部分,这也决定了Web应用程序的安全问题非常重要。在Web应用程序中,Cookie被广泛使用来实现用户身份认证等功能,然而Cookie也存在着安全风险,因此在配置Nginx时,必须设定适当的Cookie安全策略,以保证Cookie的安全性。下面是一些在Nginx中配置Cookie安全策

MySQL连接池的最大连接数如何设置?MySQL连接池的最大连接数如何设置?Jun 30, 2023 pm 12:55 PM

如何配置MySQL连接池的最大连接数?MySQL是一个开源的关系型数据库管理系统,被广泛应用于各种领域的数据存储与管理。在使用MySQL时,我们常常需要使用连接池来管理数据库连接,以提高性能和资源利用率。连接池是一种维护和管理数据库连接的技术,它能够在需要时提供数据库连接,并在不需要时回收连接,从而减少了连接的重复创建和销毁。而连接池的最大连接数则是连接池所

Nginx错误页面配置,优雅处理网站故障Nginx错误页面配置,优雅处理网站故障Jul 04, 2023 pm 04:06 PM

Nginx错误页面配置,优雅处理网站故障在现代互联网时代,一个高度稳定和可靠的网站是任何企业或个人追求的目标。然而,由于各种原因,网站可能会经历故障或错误,这可能是由于网络问题、服务器问题或应用程序错误等。为了提供更好的用户体验和优雅地处理任何可能发生的错误,Nginx作为一个强大的Web服务器软件,不仅能够提供高性能的服务,还能够灵活地配置错误页面。在Ng

如何通过宝塔面板进行UFW防火墙的配置如何通过宝塔面板进行UFW防火墙的配置Jun 21, 2023 am 09:08 AM

在Linux服务器上配置防火墙非常重要,它可以有效地保护服务器免受恶意攻击。在Ubuntu操作系统上,我们可以使用UFW防火墙来保护服务器的安全。在本文中,我们将介绍如何使用宝塔面板配置UFW防火墙。第一步:安装宝塔面板首先,我们需要在Ubuntu上安装宝塔面板。您可以在宝塔官网免费下载宝塔面板的安装包,然后在命令行中运行以下命令来安装宝塔面板:$wget

如何使用Linux进行虚拟网络配置如何使用Linux进行虚拟网络配置Jun 18, 2023 am 11:24 AM

随着云计算、大数据和物联网等技术的日益普及,虚拟化技术成为了当今IT领域的热门话题。虚拟化是通过将一台物理主机划分为多个独立的虚拟机,实现资源的共享和管理的方法。虚拟网络是虚拟化的其中一个重要组成部分,能够满足不同应用之间的网络隔离和互动需求。在本文中,我们将介绍如何使用Linux进行虚拟网络配置。一、Linux虚拟网络的概述在物理网络中,网卡是连接网络设备

Sphinx 实现全文搜索的 PHP 应用指南Sphinx 实现全文搜索的 PHP 应用指南Oct 03, 2023 am 08:37 AM

Sphinx实现全文搜索的PHP应用指南引言:在现代的Web应用中,全文搜索功能已经成为了一个必备的特性。因为用户常常会通过输入关键词来搜索和匹配他们所需要的内容。为了提供高效和准确的搜索结果,我们需要一个强大的搜索引擎。而Sphinx作为一个开源的全文搜索引擎,它为PHP提供了一个完美的搜索解决方案。本文将介绍如何使用Sphinx实现

Intel TXT的安装和配置步骤Intel TXT的安装和配置步骤Jun 11, 2023 pm 06:49 PM

IntelTXT(TrustedExecutionTechnology,可信执行技术)是一种硬件帮助保护系统安全的技术。它通过使用硬件测量模块(TPM)来确保系统启动过程中的完整性,并且可以防止恶意软件攻击。在本文中,我们将讨论IntelTXT的安装和配置步骤,帮助你更好地保护你的系统安全。第一步:检查硬件要求安装IntelTXT前,需要先检查计算

See all articles

熱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.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),