Sphinx 狮身人面像/曼蒂科尔-将一个平面索引与另一个平面索引分开?

Sphinx 狮身人面像/曼蒂科尔-将一个平面索引与另一个平面索引分开?,sphinx,manticore,Sphinx,Manticore,我有一个纯文本索引,它从MySQL中提取数据,并以我需要的格式将其插入Manticore(例如,将datetime字符串转换为时间戳,包含一些字段等) 然后,我想基于此数据创建第二个纯文本索引,以对其进行进一步分组。这将使我无需重新运行INSERT上对第一个索引所做的归一化,或者使我将来更容易查询 例如,我的第一个索引是所有已拨打/收到的电话(电话号码、持续时间、代理)的列表。第二个索引应按年-月日期分组,以便我可以看到每个代理在该天拨打了多少电话。这意味着我最终会拨打idx\u电话和idx\u

我有一个纯文本索引,它从MySQL中提取数据,并以我需要的格式将其插入Manticore(例如,将datetime字符串转换为时间戳,包含一些字段等)

然后,我想基于此数据创建第二个纯文本索引,以对其进行进一步分组。这将使我无需重新运行
INSERT
上对第一个索引所做的归一化,或者使我将来更容易查询

例如,我的第一个索引是所有已拨打/收到的电话(电话号码、持续时间、代理)的列表。第二个索引应按年-月日期分组,以便我可以看到每个代理在该天拨打了多少电话。这意味着我最终会拨打
idx\u电话
idx\u电话

目前,我从MySQL生成第一个索引,然后让Manticore自己查询(通过将MySQL主机设置为localhost。这是可行的,但感觉好像我应该能够直接从索引中查询Manticore。但是,我很难找到这是否可行


有更好的方法吗?

斯芬克斯/曼蒂科尔有自己的分组功能。因此,也许可以对原始索引运行最终查询,而不需要第二个索引。 Sphinx的聚合(在某种程度上)比MySQL更强大,并且可以执行一些“超级聚合”功能(如使用GROUP ORDER BY中的

但除此之外,没有直接的方法来创建一个关闭另一个的表(例如没有
创建表idx\u phone\u calls\u by\u date SELECT…FROM idx\u phone\u calls…


您引导
索引器
searchd
查询数据的“解决方案”很好。一般来说,这应该非常有效,特别是在本地主机上,开销很小。保持searchd的逻辑分离,用于查询,索引器用于构建良好的索引。

谢谢您的回复。我已经结束了essen首先,运行对MySQL的第二次调用来获取数据,因为虽然localhost方法似乎有效,但我发现它并不总是在Manticore索引中生成表(也就是说,它没有显示在
show TABLES
中,而是显示在磁盘上。运行第二个MySQL查询似乎很好,特别是因为我可以在不同的时间段运行它,以避免对数据库不必要的加载。这听起来像是在构建第二个索引时没有
--rotate
,所以indexer构建了它,但从未告诉searchd加载它。我想k我没有使用
systemd
重新启动
manticore
服务。一旦我重新启动,索引就在那里。不需要显式地“重新启动”searchd(运行查询引擎的二进制文件!)加载新索引。在indexer上使用--rotate开关更好,因为它只是“重新加载”searchd,这意味着它在不完全重新启动的情况下加载n个新索引。重新加载是“无缝”的,不会影响正在运行的查询(即有一段停机时间),感谢您的帮助Barry!