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

Sphinx使用入门

    博客分类:
  • db
阅读更多
搜索三大要素:数据来源、预处理、查询。
在Sphinx+MySQL的架构中,MySQL主要提供了数据来源和查询接口,真正进行全文索引建立和查询的是Sphinx。
MySQL里面存放真正的数据;Sphinx从MySQL中获取数据建立全文索引;应用程序使用相应的api与Sphinx交互以获得真正的数据(此处的api包含SQL接口、php接口,以及其他一些编程语言能够调用的接口)。

假设test库内有表test,结构如下:
CREATE TABLE `test` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`content` varchar(20000) DEFAULT NULL,
`gmt_create` datetime DEFAULT NULL,
`v` char(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
我们需要在content字段上面做全文索引。

根据以上信息配置Sphinx是一件相对容易的事情。在只涉及到单数据来源(MySQL)的情况下,我们只需要关注下面这几个参数:
source src1
{
# data source type. mandatory, no default value
# known types are mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc
type = mysql

#####################################################################
## SQL settings (for ‘mysql’ and ‘pgsql’ types)
#####################################################################

# some straightforward parameters for SQL source types
sql_host = 192.168.*.*
sql_user = realzyy
sql_pass = realzyy
sql_db = test
sql_port = 3306 # optional, default is 3306

# pre-query, executed before the main fetch query
# multi-value, optional, default is empty list of queries
#
sql_query_pre = SET NAMES utf8
# sql_query_pre = SET SESSION query_cache_type=OFF

# range query setup, query that must return min and max ID values
# optional, default is empty
#
# sql_query will need to reference $start and $end boundaries
# if using ranged query:
#
sql_query = \
SELECT id, gmt_create, content,v \
FROM test \
WHERE id>=$start AND id<=$end

sql_query_range = SELECT MIN(id),MAX(id) FROM test

# range query step
# optional, default is 1024
#
sql_range_step = 128

# UNIX timestamp attribute declaration
# multi-value (an arbitrary number of attributes is allowed), optional
# similar to integer, but can also be used in date functions
#
# sql_attr_timestamp = posted_ts
# sql_attr_timestamp = last_edited_ts
sql_attr_timestamp = gmt_create

# string ordinal attribute declaration
# multi-value (an arbitrary number of attributes is allowed), optional
# sorts strings (bytewise), and stores their indexes in the sorted list
# sorting by this attr is equivalent to sorting by the original strings
#
sql_attr_str2ordinal = v

# ranged query throttling, in milliseconds
# optional, default is 0 which means no delay
# enforces given delay before each query step
sql_ranged_throttle = 0

# document info query, ONLY for CLI search (ie. testing and debugging)
# optional, default is empty
# must contain $id macro and must fetch the document by that id
sql_query_info = SELECT * FROM test WHERE id=$id
}

因为这个表的字符集采用了utf8,所以还需要修改一下:
index test1
{
source = src1
# document source(s) to index
# multi-value, mandatory
# document IDs must be globally unique across all sources
source = src1

# index files path and file name, without extension
# mandatory, path must be writable, extensions will be auto-appended
path = /u01/sphinx/var/data/index_for_test

# document attribute values (docinfo) storage mode
# optional, default is 'extern'
# known values are 'none', 'extern' and 'inline'
docinfo = extern

# memory locking for cached data (.spa and .spi), to prevent swapping
# optional, default is 0 (do not mlock)
# requires searchd to be run from root
mlock = 0

# a list of morphology preprocessors to apply
# optional, default is empty
#
# builtin preprocessors are 'none', 'stem_en', 'stem_ru', 'stem_enru',
# 'soundex', and 'metaphone'; additional preprocessors available from
# libstemmer are 'libstemmer_XXX', where XXX is algorithm code
# (see libstemmer_c/libstemmer/modules.txt)
#
# morphology = stem_en, stem_ru, soundex
# morphology = libstemmer_german
# morphology = libstemmer_sv
morphology = none
# minimum indexed word length
# default is 1 (index everything)
min_word_len = 1

# charset encoding type
# optional, default is 'sbcs'
# known types are 'sbcs' (Single Byte CharSet) and 'utf-8'
charset_type = utf-8

# charset definition and case folding rules "table"
# optional, default value depends on charset_type
#
# defaults are configured to include English and Russian characters only
# you need to change the table to include additional ones
# this behavior MAY change in future versions
#
# 'sbcs' default value is
# charset_table = 0..9, A..Z->a..z, _, a..z, U+A8->U+B8, U+B8, U+C0..U+DF->U+E0..U+FF, U+E0..U+FF
#
# ‘utf-8′ default value is
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
}
执行一下indexer创建全文索引;再执行searchd打开Sphinx的监听端口以便接收请求;最后可以用search去检测一下战果~
#indexer –all
#searchd
#search *****
分享到:
评论

相关推荐

    Sphinx入门.docx

    Sphinx入门.docx

    Sphinx 在 windows 下安装使用.docx

    网络管理linux sphinx 安装和使用的资料比较齐全,本文就实际在windosw下的安装经验进行分享。

    sphinx 参考手册和源程序

    2.5. Sphinx 快速入门教程 3. 建立索引 3.1. 数据源 3.2. 属性 3.3. 多值属性 ( MVA : multi-valued attributes) 3.4. 索引 3.5. 数据源的限制 3.6. 字符集 , 大小写转换 , 和转换表 3.7. SQL 数据源 ...

    Sphinx中文参考手册.rar

    2.5. Sphinx 快速入门教程 3. 建立索引 3.1. 数据源 3.2. 属性 3.3. 多值属性 ( MVA : multi-valued attributes) 3.4. 索引 3.5. 数据源的限制 3.6. 字符集 , 大小写转换 , 和转换表 3.7. SQL 数据源 ...

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

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

    CMU Sphinx-4应用程序编程指南

    CMU Sphinx4是卡内基梅隆大学的开放源代码语音识别系统的最新Java版,本文档是其开发文档,其中有完整的代码示例,适合于初学者入门,比较难找,是目前少有的Sphinx4开发的参考资料。

    Sphinx入门和RTD线上配置

    $ brew install sphinx-doc 启动 $ sphinx-quickstart 配置 Separate source and build directories (y/n) [n]: n Project name: my-first-sphinx-project Author name(s): vincentlu Project release []: 1.0 ...

    最新的sphinx中文手册

    最新的sphinx中文手册,全部中文,各API详细的解释,让你快速入门Sphinx的配置和开发

    helperScripts:这些是Pocketsphinx STT入门的一些脚本和语言模型

    辅助脚本这是对音频和Pocketsphinx文本到语音脚本进行故障排除的一系列操作。 当我创建语音助手并认为它们对其他人会有所帮助时,我已经积累了几个月的时间。 audio_test.sh将通过记录默认系统音频中的几秒模糊然后...

    公司sphinx搜索学习ppt

    公司sphinx搜索学习ppt 公司学习用的 快速入门

    sphinx-qsp:狮身人面像快速入门加

    狮身人面像快速入门加 这是扩展“ sphinx-quickstart”的实用工具。 执照 这个模块是免费的:) 安装 pip install sphinx-quickstart-plus 用 sphinx-quickstart-plus 特征 记住最新设置 更多扩展 通用标记和推荐标记 ...

    Python 入门指南-3.4-pdf

    《Python 入门指南-V3.4》,由www.pythondoc.com翻译自官方文档《Python tutorial Documentation -Release 3.4》。官网源文件直接通过Sphinx制作的pdf文档。

    写代码时自动空格matlab-omero-documentation:用于开放式显微镜环境的基于Sphinx的文档

    Sphinx入门 初始设置 狮身人面像 Sphinx依赖于sphinx-build Python脚本。 这样,可以将其安装在具有有效Python安装和PIP的任何系统上。 在Windows上,请确保在PATH中配置了Python安装目录下的Scripts目录(例如C:\...

    risc-v-getting-started-guide:RISC-V官方入门指南

    该指南是使用Sphinx构建的,Sphinx是一个流行的文档框架,例如,基于reStructuredText由Python,Zephyr和Linux使用。 Sphinx可以通过Python软件包管理器pip进行安装: pip install sphinx (有关详细说明,请参阅 ...

    pandas_sphinx-0.1.1.tar.gz

    这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,...

    pandas_sphinx-0.1.0.tar.gz

    这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,...

    程序员为什么还要刷题-getting-started:使用python、travis、sphinx、github和一般科学计算开始使用MSG的

    入门指南,使用 Python、Travis CI、Sphinx、GitHub 和通用科学计算。 本指南不假定任何先前的编程经验。 以下内容旨在介绍成为 MSG 小组的有效成员并成为优秀程序员所需的工具和技能。 一旦您熟悉了这些工具,您将...

    hieroglyph:利用Sphinx的全部功能从纯文本源生成HTML演示文稿

    您可以使用随附的快速入门脚本开始新的象形文字演示: $ hieroglyph-quickstart 这将生成Sphinx配置以及可选的Makefile和批处理文件,并启用象形文字。 如果您使用的是类似UNIX的系统(Linux,Mac OS X等),则...

    pandas_sphinx-0.1.0-py3-none-any.whl

    这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,...

Global site tag (gtag.js) - Google Analytics