`
beyondhjjyt
  • 浏览: 39726 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

sphinx使用心得

 
阅读更多

近期领导觉得网站的搜索太慢了。让我们优化一下。经过研究。感觉之前使用的like查询效率太低。所以导致查询速度慢。从网上找到了sphinx。据说这个软件是做搜索用的。可以大大提高效率。由于之前从来没有接触过。所以只能对着文档进行研究。由于我们的网站是纯英文的。所以只需要sphinx即可。针对中文做全文索引的软件叫coreseek。最初我认为sphinx就是一个数据库。和mysql类似。只是比mysql效率高。经过研究,发现并不是那么回事。

sphinx是对数据库里的表做索引。需要查询的数据提交到sphinx进行查询。返回在mysql数据库里的id,让后拿id去mysql数据库里去查询。

1、先安装sphinxclient
   #cd /usr/local/src
   #wget http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz
   #tar xzvf sphinx-0.9.9.tar.gz
   #cd sphinx-0.9.9/api/libsphinxclient
   #vim sphinxclient.c                    
    找到
    void sock_close ( int sock );
    改为
    static void sock_close ( int sock );
   #./configure --prefix=/usr/local/sphinxclient
   #make
   #make install
 2、安装sphinx扩展
   #wget http://pecl.php.net/get/sphinx-1.0.4.tgz
   #tar xvzf sphinx-1.0.4.tgz
   #cd sphinx-1.0.4
   #/usr/local/php/bin/phpize
   #./configure --with-php-config=/usr/local/php/bin/php-config --with-sphinx=/usr/local/sphinxclient
   #make
   #make install
   修改php.ini
   extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
   [sphinx]
   extension=sphinx.so

2、测试
1、安装sphinx
请参照文档http://linux008.blog.51cto.com/2837805/622088
2、编写测试文件

    #vim sphinx.php
    <?php
     $s = new SphinxClient;
     setServer("localhost", 9312);
     $s->setMatchMode(SPH_MATCH_ANY);
     $s->setMaxQueryTime(3);
     $result = $s->query("demo");
     var_dump($result);
    ?>
    #/usr/local/php/bin/php sphinx.php   运行结果
    array(9) {
  ["error"]=>
  string(0) ""
  ["warning"]=>
  string(0) ""
  ["status"]=>
  int(0)
  ["fields"]=>
  array(5) {
    [0]=>
    string(6) "cat_id"
    [1]=>
    string(13) "provider_name"
    [2]=>
    string(12) "goods_number"
    [3]=>
    string(18) "promote_start_date"
    [4]=>
    string(8) "keywords"
  }
  ["attrs"]=>
  array(8) {
    ["goods_sn"]=>
    string(1) "3"
    ["goods_name"]=>
    string(1) "3"
    ["brand_id"]=>
    string(1) "1"
    ["goods_weight"]=>
    string(1) "5"
    ["market_price"]=>
    string(1) "5"
    ["shop_price"]=>
    string(1) "5"
    ["promote_price"]=>
    string(1) "5"
    ["gid"]=>
    string(10) "1073741825"
  }
  ["total"]=>
  int(0)
  ["total_found"]=>
  int(0)
  ["time"]=>
  float(0)
  ["words"]=>
  array(1) {
    ["demo"]=>
    array(2) {
      ["docs"]=>
      int(0)
      ["hits"]=>
      int(0)
    }
  }
}

分享到:
评论

相关推荐

    语音识别 sphinx4 JAVA 教程

    在Java环境下使用Sphinx-4,首先需要下载并解压Sphinx-4的源代码包,然后通过构建工具如Maven或Gradle进行编译。确保你的开发环境中已安装Java JDK,并配置好环境变量。Sphinx-4的配置文件(通常是config.xml)需要...

    PHP搜索引擎Sphinx使用教程.zip

    标题 "PHP搜索引擎Sphinx使用教程.zip" 提供的是关于如何在PHP环境中利用Sphinx搜索引擎进行全文检索的信息。Sphinx是一个高效、开源的全文搜索引擎,它为多种编程语言提供了API接口,包括PHP,使得开发者能够方便地...

    sphinx 安装及使用

    ### Sphinx 安装及使用详解 #### 一、Sphinx简介 Sphinx是一款高性能的全文搜索引擎,主要用于提高大型数据集的搜索效率。它能够独立运行,也可以作为应用程序的一部分嵌入到其他软件中。Sphinx主要适用于对性能...

    sphinx使用rt实时索引源码

    Sphinx 是一个高性能全文搜索引擎,尤其适用于需要实时更新索引的应用场景。它的核心特性包括高效、灵活的配置以及对多种数据源的支持。在本篇文章中,我们将深入探讨 Sphinx 的实时索引(Real-Time Indexing)功能...

    Sphinx 使用经验分享

    【Sphinx 使用经验分享】 Sphinx 是一个强大的全文搜索引擎,主要设计用于与SQL数据库集成,尤其是MySQL和PostgreSQL。它的核心优势在于其高速的索引构建能力(可达10MB/s)和高效的搜索性能(在2-4GB的文本量中...

    Sphinx使用手册

    ### Sphinx使用手册详解 #### 一、Sphinx简介与特点 Sphinx是一个高效的全文检索引擎,主要用于提升数据库的全文搜索性能。它支持多种数据库系统,包括MySQL和PostgreSQL,并能够提供更加专业和优化的搜索功能。...

    Windows下安装使用Sphinx

    ### Windows 下安装使用 Sphinx #### 一、Sphinx 概述 Sphinx 是一款由俄罗斯开发者 Andrew Aksyonoff 开发的高性能全文搜索软件包,它支持 GPL 和商业许可协议。全文检索是一种信息检索技术,它以文档的全部文本...

    sphinx在linux的安装和使用方法

    ### Sphinx在Linux下的安装与使用方法 #### 一、Sphinx简介 Sphinx是一款开源的全文检索引擎,它可以提供快速的、高效率的全文搜索功能。Sphinx支持多种数据库(如MySQL、PostgreSQL等)以及文件系统等多种数据源...

    Linux下php+sphinx实例

    如果你的应用已经使用了mysqli扩展连接MySQL数据库,你也可以通过mysqli扩展来同步数据到Sphinx。这需要在PHP代码中添加适当的SQL触发器或事件,以在数据库记录更新时更新Sphinx索引。 7. **测试和优化**: 一旦...

    coreseek SPHINX 使用说明及详细介绍

    使用这个API,你可以轻松地集成Sphinx到你的PHP应用中,提高搜索性能。 ### 4. `WeiboSphinxSearchUtil.php` `WeiboSphinxSearchUtil.php`可能是一个示例或特定于微博应用的Sphinx搜索工具类,它可能封装了针对微博...

    使用sphinx生成API文档

    ### 使用Sphinx生成API文档 #### 一、简介 Sphinx是一种强大的文档生成工具,尤其适合于Python项目。它能够自动生成清晰、美观且结构化的文档,并支持多种输出格式(如HTML、PDF等)。本文档将详细介绍如何使用...

    java 整合 sphinx

    Java整合Sphinx主要涉及到的是在Java应用程序中使用Sphinx搜索引擎进行数据检索的技术。Sphinx是一款高性能、全文搜索引擎服务器,常用于构建实时的、基于全文的搜索功能。它提供了丰富的API和多种语言的客户端库,...

    pocketsphinx、speechrecognition中文语音包.rar

    然后,通过speechrecognition的`Recognizer`类创建一个识别对象,并设置其使用的识别器为pocketsphinx。接下来,我们可以加载音频文件或实时录音,调用`recognize_sphinx()`方法,传入声学模型和语言模型路径,就能...

    Sphinx 使用经验分享.rar

    标题中的"Sphinx 使用经验分享"表明这是一份关于Sphinx技术的教程或分享材料,而描述则揭示了这份文档将涵盖从基础知识到实际操作的多个方面。Sphinx是一款开源的全文搜索引擎,常用于构建高性能、高精度的搜索功能...

    php7的sphinx扩展,适用linux,mac

    3. 编译并安装扩展:运行`phpize`来配置编译环境,然后执行`./configure --with-sphinx=/path/to/sphinx`,最后使用`make && make install`完成编译和安装。 4. 更新PHP配置:将新安装的Sphinx扩展添加到php.ini文件...

    pocketsphinx语音库

    2. **基本API使用**:介绍如何使用Pocketsphinx的API进行语音识别,包括初始化、录音、解码和关闭等步骤。 3. **模型训练**:解释如何收集数据、创建自定义模型,并进行训练。 4. **实例演示**:提供实际应用案例...

    Android应用源码之使用PocketSphinx做离线语音识别,小范围语音99%识别率-IT计算机-毕业设计.zip

    本项目“Android应用源码之使用PocketSphinx做离线语音识别,小范围语音99%识别率”提供了这样的解决方案,特别适合于需要高效、精确且对网络依赖较小的场景,如教育、智能家居或医疗应用。 PocketSphinx是CMU ...

    Android平台使用PocketSphinx做离线语音识别,小范围语音99%识别率-IT计算机-毕业设计.zip

    同时,为了实时处理音频流,通常会使用缓冲区来分批送入识别器。 3. **语音识别流程**:当开始录音后,音频数据会被送入PocketSphinx进行处理。识别器会分析音频流,尝试找到匹配的词汇。识别结果可以通过识别器的...

    sphinx中文语音训练手册

    中文的库是PTM或semi类型的,在java版sphinx中无法使用。 2、Sphinx的训练指哪些内容? 在Sphinx中有语言模型、声学模型等概念,如果你不想了解这些,请参考以下内容: a1、中文每个字的标准发音已经有一个较为...

Global site tag (gtag.js) - Google Analytics