【问题标题】:How do I search over multiple models in a CMS using Sphinx?如何使用 Sphinx 在 CMS 中搜索多个模型?
【发布时间】:2010-10-24 07:36:32
【问题描述】:
我正在尝试在我的 CMS 中使用 Sphinx 作为站点范围的搜索。由于 CMS 中的每个模型都有不同的全文字段,因此我为每个模型创建了一个索引。但是,根据 Sphinx 的forum,不支持搜索具有不同架构的多个索引。
CMS 人员如何使用 Sphinx 进行一般网站搜索?对每个模型执行对 Sphinx 的调用并跟踪分页偏移量?使用每个模型/字段的索引字段创建一个巨大的索引?还有其他我没有想到的解决方案吗?
【问题讨论】:
标签:
search
content-management-system
full-text-search
sphinx
【解决方案1】:
你可能很久以前就解决了这个问题,但是好吧......
您不能在一次调用 ->Query() 时覆盖具有不同 Schema 的多个索引,但 您可以执行 multiple queries with AddQuery() and RunQueries()
所以,而不是调用
->Query( 'keywords' , ( 'schemaA', 'schemaB', 'schemaC' ) )
你这样做:
->AddQuery('keywords' , ( 'schemaA') );
->AddQuery('keywords' , ( 'schemaB') );
->AddQuery('keywords' , ( 'schemaC') );
->RunQueries();
您将获得一组结果,每个查询一个。然后在您的搜索结果页面中,您可以显示按“类型”(或架构)分隔的结果,例如:
___结果页______ em>_
正在搜索“蓝色”...
--- 我们在汽车中找到 23 个结果----
--- 我们在房屋中找到 2 个结果----
_(结束)结果页_____