建议Sphinx指数计划

时间:2010-05-21 08:41:35

标签: mysql indexing sphinx

在MySQL数据库中,我有不同类型的文档:一些有文本内容,元键,描述,其他有代码,SKU编号,大小和品牌名称等等。问题是,我必须在所有这些文档中搜索一些内容,然后显示一个页面,其中结果将按文档类型分组,例如帮助页面,博客文章,项目...我不清楚实现Sphinx索引:我希望有一个索引来加速查询,但由于不同的文档具有不同的结构 - 我如何对它们进行分组?我在考虑将它们连接起来,但感觉不对。

1 个答案:

答案 0 :(得分:1)

Sphinx实际上并不返回连接或不连接的文档,它返回已编入索引的项目或属性的主键。这里,在sphinx.conf的这个片段中,这里的SQL用于构建索引。随后搜索索引时,将返回product.id,同时搜索text2search。

sql_query = SELECT id, CONCAT_WS( ' ', field1, field2 ) as text2search FROM product

如果您的文档/产品位于同一个数据库表中,这非常简单。在给定要使用的主键时,您可以在数据库端检索和重新创建数据结构。

如果您在每个类型映射到不同的表时在一个sphinx索引中索引不同类型的项目,那么它会更复杂一些。