Sphinx Search如何索引/处理JSON文件?

时间:2010-05-19 16:20:34

标签: mysql ruby sphinx

我有一个主要存储JSON对象的mysql数据库。我正在考虑使用Sphinx搜索它 - 但我想知道如何索引和检索这些json对象?

2 个答案:

答案 0 :(得分:1)

在数据库中包含一个包含存储在JSON对象中的重要文本的字段是明智的。如果您的JSON对象是书籍,那么当您将JSON提交到数据库时,我会将标题,作者和发布者以纯文本形式存储在数据库字段search_text中。

您对索引器的SQL查询可能如下所示

sql_query = SELECT id, search_text FROM json_object;

我还没有测试过Sphinx如何处理原始JSON,虽然它可以通过html_strip = 1 conf设置剥离HTML。如果你想要一些非常脏的东西,你可以在索引时使用一系列嵌套的MySQL字符串REPLACE()函数从json字段中去除标点符号和JavaScript语法。

sql_query = SELECT id, REPLACE( REPLACE(raw_json, ']', ' '), '[', ' ') as search_text FROM json_object;

但你不想这样做吗?

答案 1 :(得分:1)

更好的解决方案:使用an XML pipe。 Sphinx允许您指定要运行以构建管道的脚本。使用该脚本选择数据,解码json字符串,然后将其吐出为XML。您还可以在XML中包含您的模式,这将为您提供动态生成模式的好处。