`
yeyuan
  • 浏览: 227204 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

【转】sphinx在windows下的安装与测试

阅读更多
转自:http://www.cnblogs.com/ainiaa/archive/2010/12/21/1912459.html

1.直接在http://www.sphinxsearch.com/downloads.html找到最新的windows版本,我这里下的是Win32 release binaries with MySQL support,下载后解压在D:\sphinx目录下;
2.在D:\sphinx\下新建一个data目录用来存放索引文件,一个log目录方日志文件,复制D:\sphinx\sphinx.conf.in到D:\sphinx\bin\sphinx.conf(注意修改文件名);
3.修改D:\sphinx\bin\sphinx.conf,我这里列出需要修改的几个:
type        = mysql # 数据源,我这里是mysql
sql_host    = localhost # 数据库服务器
sql_user    = root # 数据库用户名
sql_pass    = '' # 数据库密码
sql_db      = test # 数据库
sql_port    = 3306 # 数据库端口
sql_query_pre   = SET NAMES utf8 # 去掉此行前面的注释,如果你的数据库是uft8编码的
index test1
{
# 放索引的目录
 path   = D:/sphinx/data/
# 编码
 charset_type  = utf-8
 #  指定utf-8的编码表
 charset_table  = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
 # 简单分词,只支持0和1,如果要搜索中文,请指定为1
 ngram_len    = 1
# 需要分词的字符,如果要搜索中文,去掉前面的注释
 ngram_chars   = U+3000..U+2FA1F
}
# index test1stemmed : test1
# {
 # path   = @CONFDIR@/data/test1stemmed
 # morphology  = stem_en
# }
 
# 如果没有分布式索引,注释掉下面的内容
# index dist1
# {
 # 'distributed' index type MUST be specified
 # type    = distributed
 # local index to be searched
 # there can be many local indexes configured
 # local    = test1
 # local    = test1stemmed
 # remote agent
 # multiple remote agents may be specified
 # syntax is 'hostname:port:index1,[index2[,...]]
 # agent    = localhost:3313:remote1
 # agent    = localhost:3314:remote2,remote3
 # remote agent connection timeout, milliseconds
 # optional, default is 1000 ms, ie. 1 sec
 # agent_connect_timeout = 1000
 # remote agent query timeout, milliseconds
 # optional, default is 3000 ms, ie. 3 sec
 # agent_query_timeout  = 3000
# }
# 搜索服务需要修改的部分
searchd
{
 # 日志
 log     = D:/sphinx/log/searchd.log
 # PID file, searchd process ID file name
 pid_file   = D:/sphinx/log/searchd.pid
 # windows下启动searchd服务一定要注释掉这个
 # seamless_rotate  = 1
}


4.导入测试数据
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysql -uroot test<d:/sphinx/example.sql
5.建立索引
D:\sphinx\bin>indexer.exe –all
Sphinx 0.9.8-release (r1533)
Copyright (c) 2001-2008, Andrew Aksyonoff
using config file ‘./sphinx.conf’…
indexing index ‘test1′…
collected 4 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 4 docs, 193 bytes
total 0.101 sec, 1916.30 bytes/sec, 39.72 docs/sec
D:\sphinx\bin>


6.搜索’test’试试
D:\sphinx\bin>search.exe test
Sphinx 0.9.8-release (r1533)
Copyright (c) 2001-2008, Andrew Aksyonoff
using config file ‘./sphinx.conf’…
index ‘test1′: query ‘test ‘: returned 3 matches of 3 total in 0.000 sec
displaying matches:
1. document=1, weight=2, group_id=1, date_added=Wed Nov 26 14:58:59 2008
        id=1
        group_id=1
        group_id2=5
        date_added=2008-11-26 14:58:59
        title=test one
        content=this is my test document number one. also checking search within
 phrases.
2. document=2, weight=2, group_id=1, date_added=Wed Nov 26 14:58:59 2008
        id=2
        group_id=1
        group_id2=6
        date_added=2008-11-26 14:58:59
        title=test two
        content=this is my test document number two
3. document=4, weight=1, group_id=2, date_added=Wed Nov 26 14:58:59 2008
        id=4
        group_id=2
        group_id2=8
        date_added=2008-11-26 14:58:59
        title=doc number four
        content=this is to test groups
words:
1. ‘test’: 3 documents, 5 hits
D:\sphinx\bin>


6.测试中文搜索
修改test数据库中documents数据表,
UPDATE `test`.`documents` SET `title` = ‘测试中文’, `content` = ‘this is my test document number two,应该搜的到吧’ WHERE `documents`.`id` = 2;

重建索引:
D:\sphinx\bin>indexer.exe –all
搜索’中文’试试:
D:\sphinx\bin>search.exe 中文
Sphinx 0.9.8-release (r1533)
Copyright (c) 2001-2008, Andrew Aksyonoff
using config file ‘./sphinx.conf’…
index ‘test1′: query ‘中文 ‘: returned 0 matches of 0 total in 0.000 sec
words:
D:\sphinx\bin>


貌似没有搜到,这是因为windows命令行中的编码是gbk,当然搜不出来。我们可以用程序试试,在D:\sphinx\api下新建一个foo.php的文件,注意utf-8编码
<?php
require ‘sphinxapi.php’;
$s = new SphinxClient();
$s->SetServer(‘localhost’,3312);
$result = $s->Query(‘中文’);
var_dump($result);
?>

启动Sphinx searchd服务
D:\sphinx\bin>searchd.exe
Sphinx 0.9.8-release (r1533)
Copyright (c) 2001-2008, Andrew Aksyonoff
WARNING: forcing –console mode on Windows
using config file ‘./sphinx.conf’…
creating server socket on 0.0.0.0:3312
accepting connections

执行PHP查询:
php d:/sphinx/api/foo.php
分享到:
评论

相关推荐

    Sphinx在Windows下安装使用[支持中文全文检索]-搜索引擎技术

    网上的资料大多是在linux环境下的安装使用,当然,作为生产环境很有必要部署在*nix环境下,作为学习测试,还是windows环境比较方便些。 本文旨在提供一种便捷的方式让Sphinx在windows下安装配置以支持中文全文检索...

    Sphinx 在WINDOWS和LINUX下安装入门与测试实例

    NULL 博文链接:https://baobeituping.iteye.com/blog/870124

    sphinx中文语音训练手册

    本文档介绍Sphinx4在Windows下的中文训练过程及注意事项,与本文档配套的是我自己的训练实例bergtrain和用到的软件。 本文档编写日期 2013-04-23 1、为什么要训练? sphinx4目前的版本中仅提供了英文等语音识别库。...

    CDMI-spec:规范问题和源文件

    在安装各种应用程序时,与所有用户安装相比,建议选择当前仅用户安装。 这样可以避免以后出现需要管理访问权限的问题。 狮身人面像 下载并安装Python 经过Python 3.6.5测试 从Windows命令行运行: pip install ...

    alacrity:只需一个便捷命令即可快速启动Python项目

    敏捷度 使用一个便捷的命令即可快速启动Python项目。 安装 pip install alacrity 跑步敏捷 要运行活跃度,请使用: ...要运行内置测试,请在项目根目录中运行tox 要添加自定义测试,请编辑tox.ini

    matlab提取文件要素代码-AMfeti:专用于结构力学问题的并行PythonFETI代码

    在安装AMfeti之前,我们强烈建议您使用和。 AMfeti应该可以在Windows和Linux系统上运行,但不受完全支持,因此如果您遇到任何问题,请告诉我们。 依存关系 Python 3.7或更高版本 numpy , scipy , mpi4pys , ...

    uutils coreutils:GNU coreutils 的跨平台 Rust 重写-开源

    要求是拥有 Rust(货物、rustc)、GNU Make(构建文档所需)、Sphinx(用于文档)和 gzip(用于安装文档)。 uutils 遵循 Rust 的发布渠道,并针对稳定版、测试版和夜间版进行了测试。 Rust 编译器当前支持的最旧...

    postgraduate-recommendation:保研攻略

    pip install --user pipenv (Windows下已测试) 若上命令不可用,请参考 本项目使用进行写作,请学习它。 本项目使用进行文档生成,如果需要学习对项目进行修改,请查看sphinx的文档。 Clone本项目 pipenv install...

    bip

    ip Bip是一个旨在简化python与IDA交互的用法的项目。它的主要目标是促进在IDA的...此安装仅在Windows和Linux上经过测试: python install.py 。 可以使用可选的--dest参数安装在特定的文件夹中: usage: install.py

    JAVA上百实例源码以及开源项目源代码

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    JAVA上百实例源码以及开源项目

     Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...

    java开源包1

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包11

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包2

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包3

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包6

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包5

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

    java开源包10

    GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....

Global site tag (gtag.js) - Google Analytics