【发布时间】:2015-10-07 22:41:12
【问题描述】:
我想使用全文搜索引擎,我决定成为 Sphinx。但我正在使用 hadoop 和大数据平台,Sphinx Search 与无法处理大数据的 mysql DB 兼容。
那么有没有办法将 Sphinx 与 hadoop 或 HDFS 或任何其他 nosql 数据库等大数据环境一起使用?
【问题讨论】:
标签: mysql mongodb hadoop hdfs sphinx
我想使用全文搜索引擎,我决定成为 Sphinx。但我正在使用 hadoop 和大数据平台,Sphinx Search 与无法处理大数据的 mysql DB 兼容。
那么有没有办法将 Sphinx 与 hadoop 或 HDFS 或任何其他 nosql 数据库等大数据环境一起使用?
【问题讨论】:
标签: mysql mongodb hadoop hdfs sphinx
它带有用于从 RDBMS 加载数据的内置驱动程序,但当然不限于此。
对于初学者来说,有“管道”索引选项...
http://sphinxsearch.com/docs/current.html#xmlpipe2 http://sphinxsearch.com/docs/current.html#xsvpipe
这些只是运行一个脚本并索引输出。该脚本可以从几乎任何可以想象的系统中获取数据。
很多项目都可以用来入门,随机示例: https://github.com/georgepsarakis/mongodb-sphinx
您也许还可以直接从 hadoop 获取 CSV 输出?
还有实时索引。将数据直接插入到索引中的位置。不是 Hadoop 专家,但理论上,可以让 hadoop 项目将结果直接注入 sphinx(outputcommitter?),而不是(或除此之外)将结果写入 HDFS。 http://sphinxsearch.com/docs/current.html#rt-indexes
也许还可以使用类似的东西 https://www.percona.com/blog/2014/06/02/using-infinidb-engine-mysql-hadoop-cluster-data-analytics/ 作为 hadoop 和 sphinx 之间的桥梁。 (即 sphinx'es 索引器通过假 mysql 引擎创建索引)
【讨论】:
find /mnt/hdfs -name "*.tsv" | xargs cat - 如果您可以通过文件系统读取hdfs。然后在索引定义中使用它。