`
kobe学java
  • 浏览: 258332 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

全文搜索引擎介绍(sphinx)

 
阅读更多

1.Lucence
2.sphinx
3.Apache Solr

一、简介:

Coreseek是基于sphinx更完善支持中文搜索功能。故其原理同sphinx,如下:

1、sphinx的两个主要进程indexer和searchd。
indexer任务是从数据库(或者其他的数据源)收集原始的数据,然后建立相应的索引。
searchd则是通过读取indexer建立的索引来响应客户端的请求。

2、sphinx工作前提:配置文件修改
a、需要让其获取数据源从何而来(即:配置source信息)
b、建立索引,对数据源的哪部分数据进行索引等详细信息(即:indexer的所有信息)
c、执行indexer生产索引,最用才启用searchd服务

3、应用主要是通过api接口实现,支持php、perl、python及ruby等语言调用。

二、系统环境:

最好使用中文环境utf8
locale查看
修改/etc/profile 文件添加 export LC_ALL=zh.CN-UTF8

确认autoconf、automake安装可执行下
autoconf
automake

三、软件编译:

2 tar zxvf coreseek-3.2.13.tar.gz
3 cd coreseek-3.2.13/mmseg-3.2.13
4 ./configure --prefix=/usr/local/mmseg
5 make && make install

##中文分词测试,如果显示不正常,请检查当前环境下的locale和UTF-8中文字符显示设置

1 /usr/local/mmseg/bin/mmseg -d /usr/local/mmseg/etc src/t1.txt

根据需要编译:

1 #只支持xml源数据源
2 ./configure --prefix=/usr/local/coreseek --without-python --without-mysql --with-mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/
3 make && make install
4 #执行测试
5 /usr/local/coreseek/bin/indexer -c /usr/local/coreseek/etc/sphinx-min.conf.dist
6 #支持Mysql数据源
7 ./configure --prefix=/usr/local/coreseek --with-mmseg=/usr/local/mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/ --with-mysql=/usr/local/mysql --with-mysql-includes=/usr/local/mysql/include/mysql/ --with-mysql-libs=/usr/local/mysql/lib/mysql/
8 make && make install

可能遇到问题处理:

1、提示config.status: error: cannot find input file: src/Makefile.in
执行以下命令

1 aclocal
2 libtoolize --force
3 automake --add-missing
4 autoconf
5 autoheader
6 make clean

注:个人只运行下autoconf及automake即通过

2、Linux环境下,如遇到pthread问题,请先直接执行以下指令在进行configure前:

1 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
2 export LD_LIBRARY_PATH

3、如果出现undefined reference to `libiconv’的类似错误,可以按照如下方法处理:
方法一:(Linux使用)
直接执行:export LIBS=”-liconv”
然后再次configure后,进行编译安装
方法二:
首先configure,然后vim src/makefile
在其中搜索lexpat,在其后加上 -liconv
修改后该行应该为:-lexpat -liconv -L/usr/local/lib
然后再次make
方法三:
#首先configure,然后vim config/config.h
在其中搜索USE_LIBICONV,将其后的1修改为0
然后再次make

四、文件配置:(/usr/local/coreseek/etc/csft.conf)

a、数据源(这里以mysql数据为例 也可支持xml方式)

01 source sphinx
02 {
03 sql_host = 192.168.1.100   # mysql服务器ip
04 sql_user = sphinx       # mysql用户名
05 sql_pass = sphinx       # mysql密码
06 sql_db = sphinx     # mysql数据库名
07 type = mysql            # 数据源类型
08 sql_port= 3306          # optional, default is 3306
09 sql_query_pre= SET SESSION query_cache_type=OFF
10 sql_query_pre= SET NAMES utf8;
11 sql_query = SELECT * FROM documents WHERE id=$id    # 具体数据列
12 }

b、索引任务:

01 index sphinx_test
02 {
03 source   = sphinx
04 path   = /usr/local/coreseek/var/data/sphinx
05 docinfo   = extern
06 mlock   = 0
07 morphology   = none
08 stopwords   =
09 min_word_len  = 1
10 charset_type  = utf-8
11 # 简单分词,只支持0和1,如果要搜索中文,请指定为1
12 ngram_len    = 1
13 # 需要分词的字符,如果要搜索中文,去掉前面的注释
14 min_prefix_len  = 0
15 min_infix_len  = 1
16 }

c、搜索服务配置(基本保持默认即可)

01 searchd
02 {
03 port                            = 9312
04 log                             = /usr/local/coreseek/var/log/searchd.log
05 query_log                       = /usr/local/coreseek/var/log/query.log
06 read_timeout                    = 5
07 max_children                    = 30
08 pid_file                        = /usr/local/coreseek/var/log/searchd.pid
09 max_matches                     = 3000
10 seamless_rotate                 = 1
11 preopen_indexes                 = 0
12 unlink_old                      = 1
13 }

五、服务启动:

执行indexer生成索引:

1 /usr/local/coreseek/bin/indexer --rotate sphinx_test  #只对sphinx_test索引任务
2
3 /usr/local/coreseek/bin/indexer --all --rotate  # 针对所有索引任务

可能会出现数据库连接失败错误:

1 /usr/local/coreseek/bin/indexer sphinx_test --rotate
2 /usr/local/coreseek/bin/indexer: error while loading shared libraries: libmysqlclient.so.15: cannotopen shared object file: No such file or directory
3 #先确认下libmysqlclient.so.15是否存在
4 ldd /usr/local/coreseek/bin/indexer
5 libmysqlclient.so.15 => not found

解决措施:

1 vim /etc/ld.so.conf
2 /usr/local/mysql/lib/mysql/ #最后一行添加
3 [root@localhost etc]# ldconfig

运行搜索服务searchd:

1 /usr/local/coreseek/bin/searchd &

六、应用:

API接口程序调用

 

分享到:
评论

相关推荐

    PHP 全文检索引擎 Sphinx 介绍

    Sphinx是一个高性能、开源的全文检索引擎,专为配合SQL数据库而设计,如MySQL和PostgreSQL,用于实现高效且专业的全文搜索功能。它的核心优势在于能够提供比数据库原生搜索更强大的搜索性能,并且易于集成到各种使用...

    sphinx全文搜索引擎

    Sphinx全文搜索引擎是一款高效、可定制的开源全文检索引擎,主要设计用于网站后台提供快速、准确的全文搜索功能。它最初由俄罗斯开发者Andrew Aksyonoff开发,现在已经成为许多大型网站和应用程序的重要组成部分,...

    数据库 搜索引擎 sphinx

    数据库搜索引擎Sphinx是一款高效、可定制且功能丰富的全文搜索引擎,主要设计用于Web应用,以便快速地从大量数据中检索相关信息。Sphinx的核心特性包括实时索引、近实时搜索以及高度可扩展性,使得它在处理大数据量...

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

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

    PhpSou搜索引擎(整合sphinx) v3.1.1

    PHPSou搜索引擎是一款基于PHP开发的开源搜索引擎,其核心特色在于与Sphinx搜索引擎的深度整合,为用户提供高效、精准的全文检索功能。在v3.1.1版本中,开发者对软件进行了多项关键性的修复和完善,旨在提升系统的...

    基于Sphinx+MySql+Python的站内搜索引擎的设计与实现.pdf

    1. Sphinx搜索引擎介绍: Sphinx是一个开源的全文搜索引擎,采用GPLv2许可证发布,专门为数据库全文检索提供解决方案。它具有快速建立索引、高性能搜索和处理海量数据的能力。Sphinx支持多种检索模式,比如布尔检索...

    PhpSou搜索引擎(整合sphinx) v3.1.1.zip

    Sphinx是一款高性能的全文搜索引擎,以其快速、高效的索引能力和实时性著称。它支持多种数据源,包括MySQL、PostgreSQL等,可以实现对大量数据的实时搜索。Sphinx的API简单易用,与`PhpSou`的整合,使得开发者能够更...

    Sphinx全文检索引擎php版forWindowsv2.0.6

    Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口,如PHP,...

    Sphinx基于SQL的全文检索引擎简介

    Sphinx是一款开源的全文搜索引擎,特别适用于需要高效、精确全文搜索功能的应用程序。它由俄罗斯开发者Andrew Aksyonoff创建,最初是为了解决数据库的全文检索问题而设计的。Sphinx以其快速、准确和可扩展性而闻名,...

    基于Sphinx 0.9.8 开发的中文全文搜索引擎Coreseek

    支持Mysql全文搜索,支持PHP开发。 新增如下特性: 修正 2.5.x 系列searchd可能崩溃的Bug 改进 高亮的算法,支持词权重自定义 改进 切分算法,支持必须出现的关键词(仅在简单查询模式下) 本版本为Beta版,...

    Sphinx-2.2.11开源全文搜索引擎版本的php程序扩展压缩包

    Sphinx-2.2.11是一个开源的全文搜索引擎版本,它被广泛用于中大型网站的搜索功能实现。Sphinx提供了一个PHP扩展,以便更好地与PHP语言集成,方便开发人员使用。 安装Sphinx:首先,需要下载Sphinx-2.2.11的源代码包...

    Sphinx搜索引擎架构与使用文档(和MySQL结合)V1.1.

    1、搜索引擎架构图(基于PHP+MySQL+Sphinx): 3 2、搜索引擎架构设计思路: 3 ⑴、调用方式最简化: 3 ⑵、创建索引、查询速度快: 3 ⑶、按服务类型进行分离: 4 ⑷、“主索引+增量索引”更新方式: 4 ⑸、“Ext3...

    基于PHP的Sou搜索引擎(整合sphinx).zip

    标题 "基于PHP的Sou搜索引擎(整合sphinx)" 暗示了这个项目是关于使用PHP语言构建一个搜索引擎,并且利用了Sphinx这个全文搜索引擎技术。Sphinx是一个高性能、可配置的全文检索引擎,广泛用于网站搜索和数据分析。...

    PhpSou搜索引擎(整合sphinx)v3.1.1

    PhpSou搜索引擎程序新增搜索无数据自动调用百度数据仿百度搜索引擎,仿谷歌搜索引擎软件蜘蛛组件包括三大功能模块:链接采集、网页分析、无效网页扫描;自动识别GB2312、BIG5、UTF-8、Unicode等网页编码;文件类型证...

    搭建Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词搜索引擎架构

    概述:本资源旨在介绍搭建Sphinx+MySQL5.1x+SphinxSE+mmseg中文分词搜索引擎架构的过程,涵盖了Sphinx的基本概念、特性、安装和配置 MySQL+SphinxSE存储引擎、mmseg中文分词搜索引擎架构的搭建过程。 一、Sphinx...

    C++ 开发的sphinx垂直搜索引擎

    Sphinx 是一个高效、可扩展的全文搜索引擎库,特别适合于作为嵌入式解决方案使用。它由 C++ 编写,提供了丰富的功能和高度灵活性,允许开发者将其集成到自己的应用程序中,实现快速且精准的全文搜索功能。在 `sphinx...

    sphinx 文档编写工具(非搜索引擎)英文doc

    这里的Sphinx指的是文档生成工具而不是全文搜索引擎。全英文。" 提示我们这里讨论的是一个专门用于生成和管理文档的工具,名为Sphinx,版本为1.2.1。这个工具并不是一个搜索引擎,而是一个用于自动化生成编程文档的...

Global site tag (gtag.js) - Google Analytics