sphinx分布式索引简介

标签: 服务器类 Sphinx | 发表时间:2013-03-19 19:42 | 作者:admin
出处:http://blog.haohtml.com
sphinx分布式索引原理:
当searchd收到一个对分布式索引的查询时,它做如下操作:
1. 连接到远程代理
2. 执行查询
3. (在远程代理执行搜索的同时)对本地索引进行查询
4. 接收来自远程代理的搜索结果
5. 将所有结果合并,删除重复项
6. 将合并后的结果返回给客户端
在应用程序看来,普通索引和分布式索引完全没有区别。
任一个searchd实例可以同时做为主控端(master,对搜索结果做聚合)和从属端(只做本地
搜索)。这有如下几点好处:
1. 集群中的每台机器都可以做为主控端来搜索整个集群,搜索请求可以在主控端之间获
得负载平衡,相当于实现了一种HA(high availability,高可用性),可以应对某个
节点失效的情况。
2. 如果在单台多CPU或多核机器上使用,一个做为代理对本机进行搜索的searchd实例
就可以利用到全部的CPU或者核。
更好的HA支持已在计划之中,到时将允许指定哪些代理之间互相备份、有效性检查、跟踪
运行中的代理、对检索请求进行负载均衡,等等。
sphinx分布式索引配置:
index dist1
{
    # 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 for TCP connections is 'hostname:port:index1,[index2[,...]]'
    # syntax for local UNIX connections is '/path/to/socket:index1,[index2[,...]]'
    agent               = localhost:9313:remote1
    agent               = localhost:9314:remote2,remote3
    # agent             = /var/run/searchd.sock:remote4
    # blackhole remote agent, for debugging/testing
    # network errors and search results will be ignored
    # agent_blackhole       = testbox:9312:testindex1,testindex2
    # 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
}
原理和配置还是比较简单的,对于索引文件过大的情况,分布式索引非常有用。但是碰到搜索量非常大的时候,分布式索引就显得力不从心了。这个时候就需要做索引复制了。索引复制同步的问题一般采用的方案有两种。
第一种方案是主从同步。有一个主搜索服务器和多个从搜索服务器。在主搜索服务器上生成的增量索引会同步从索引服务器。从而达到主从同步。为了避免网络或者其他情况导致的增量索引不同步的情况,需要定期在一个阶段把主从服务器的主索引同步一次。新增加搜索服务器的话需要在增量索引生成的间隔数据去拷贝其他搜索服务器的主索引。
第二种方案是每个搜索服务器根据增量数据去生成增量索引。通过表来记录不同的搜索服务器是否生成增量索引。来达到同步的目的。新增加搜索服务器的话,就需要去比历史上所有的增量数据全部生成一遍。
这两种策略都是可行的。增量数据在一定时间段量很大的话建议用第一种方案,否则用第二种方案。

相关 [sphinx 分布 索引] 推荐:

sphinx分布式索引简介

- - haohtml's blog
sphinx分布式索引原理:. 当searchd收到一个对分布式索引的查询时,它做如下操作:. (在远程代理执行搜索的同时)对本地索引进行查询. 在应用程序看来,普通索引和分布式索引完全没有区别. 任一个searchd实例可以同时做为主控端(master,对搜索结果做聚合)和从属端(只做本地. 集群中的每台机器都可以做为主控端来搜索整个集群,搜索请求可以在主控端之间获.

开源搜索引擎评估:lucene sphinx elasticsearch

- - 鲁塔弗的博客
lucene系,java开发,包括 solr和 elasticsearch. sphinx,c++开发,简单高性能. 搜索引擎程序这个名称不妥当,严格说来应该叫做 索引程序(indexing program),早期主要用来做中文全文搜索,但是随着互联网的深入普及,各家网站规模越来越大,索引程序在 优化网站架构上发挥了更大的作用: 替代mysql数据库 内置的索引.

主流全文索引工具的比较( Lucene, Sphinx, solr, elastic search)

- - 企业架构 - ITeye博客
前几天的调研(  Rails3下的 full text search (全文本搜索, 全文匹配. ) ), 我发现了两个不错的候选: . lucene  (solr, elasticsearch 都是基于它) . 把看到的有价值的文章记录在这里: . 回答1.  Result relevance ranking is the default.

用Sphinx写书

- Mao.. - HYRY Blog
写技术书是一件十分费时费力的事情,作者不但需要编写有趣的内容,还需要用标准且美观大方的格式呈现内容. 在编写《Python科学计算》一书的过程中,我尝试使用Sphinx、Leo、MiKTeX等软件,拼凑出了一套适合编写技术书籍和文档的编写环境. 这本书是关于这个编写环境的一些介绍. 在线阅读版: http://hyry.dip.jp/sphinxbook.

淺談 reStructuredText 與 Sphinx

- khsing - Blog.XDite.net
但因為最近非常忙碌,所以在這裡只能淺談,請見諒. 「 第一次學 Rails 就上手 」2011/8 月的版本包含了 PDF 版本以及 EPUB 版. 這次的版本不是改寫,而是「重新排版」. 這份書的初稿是用 Markdown 謄寫手排. 而完稿則是用 Mac 上的軟體「Pages」手排. (你看,出書門檻不高吧 XD).

文档与笔记利器reStructuredText和Sphinx

- Wick - 七星庐
关于制作文档和笔记这种事,我已经纠结了很久,网上解决方案也一大推,我试过几样,ScrapBook和Zotero,编辑不太方便,同步麻烦. Google Note过于格式简单,现在也不更新了,Google Docs又有点杀鸡用牛刀. 还有传得很神奇的Evernote跟Onenote,我压根没兴趣去用.

文档与笔记利器 reStructuredText 和 Sphinx

- timebug - Wow! Ubuntu
本文转载自七星庐 [ 原文:文档与笔记利器reStructuredText和Sphinx / 作者 muzuiget ]. 关于制作文档和笔记这种事,我已经纠结了很久,网上解决方案也一大推,我试过几样,ScrapBook 和 Zotero,编辑不太方便,同步麻烦. Google Note 过于格式简单,现在也不更新了,Google Docs又有点杀鸡用牛刀.

使用 Sphinx 更好地进行 MySQL 搜索

- - OurMySQL
MySQL 是一个出色的综合性数据库,但是,对于需要进行大量搜索的应用程序,考虑采用具体的搜索实用工具可能会更好一些. 本文章将 Sphinx(一个著名的全文本搜索包)视为 MySQL 的替代品,用它来进行搜索,提高非全文本搜索的速度. 本文章研究此更改中涉及的权衡方法和说明,演示一些具体测试,并考虑以通用方式使用 Sphinx 所需的内容.

[转] Sphinx SetGeoAnchor 经纬度查找附近地点

- - 互联网 - ITeye博客
原文地址 http://www.douban.com/group/topic/30286342. Sphinx 的 SetGeoAnchor方法,(LinkWith:http://sphinxsearch.com/docs/manual-0.9.9.html#api-func-setgeoanchor).

分布式搜索引擎Elasticsearch的架构分析

- - 掘金后端
ES(Elasticsearch下文统一称为ES)越来越多的企业在业务场景是使用ES存储自己的非结构化数据,例如电商业务实现商品站内搜索,数据指标分析,日志分析等,ES作为传统关系型数据库的补充,提供了关系型数据库不具备的一些能力. ES最先进入大众视野的是其能够实现全文搜索的能力,也是由于基于Lucene的实现,内部有一种倒排索引的数据结构.