1

我正在尝试在我的 CMS 中使用Sphinx作为站点范围的搜索。由于 CMS 中的每个模型都有不同的全文字段,因此我为每个模型创建了一个索引。但是,根据 Sphinx 的论坛,不支持搜索具有不同模式的多个索引。

你们 CMS 人员如何使用 Sphinx 进行一般网站搜索?对每个模型执行对 Sphinx 的调用并跟踪分页偏移量?使用每个模型/字段的索引字段创建一个巨大的索引?还有其他我没有想到的解决方案吗?

4

1 回答 1

0

您可能很久以前就解决了这个问题,但是...

您不能在一次调用 ->Query() 时覆盖具有不同 Schema 的多个索引,但您可以使用 AddQuery() 和 RunQueries() 执行多个查询

所以,而不是打电话

->Query( 'keywords' , ( 'schemaA', 'schemaB', 'schemaC' ) )

你做:

->AddQuery('keywords' , ( 'schemaA') );
->AddQuery('keywords' , ( 'schemaB') );
->AddQuery('keywords' , ( 'schemaC') );
->RunQueries();

您将获得一组结果,每个查询一个。然后在您的搜索结果页面中,您可以显示按“类型”(或架构)分隔的结果,例如:

___结果页面_ _ __ _ _

寻找“蓝色”...

--- 我们在汽车中找到 23 个结果 ----

  • 车 1
  • 车 2
  • 3号车
  • ..

--- 我们在房屋中找到 2 个结果 ----

  • 房子 1
  • 房子 2
  • 房子 3
  • ..

_(结束)结果页_ __ _ _

于 2010-12-01T17:32:18.143 回答