问题描述
我有一个纯文本索引,该索引从MysqL吸收数据并将其以我需要的格式插入Manticore(例如,将日期时间字符串转换为时间戳,对某些字段进行CONCAT处理等。
然后,我想根据此数据创建第二个纯文本索引,以将其进一步分组。这将使我不必重新运行对INSERT
上的第一个索引执行的规范化,或者使以后我查询起来更加容易。
例如,我的第一个索引是已拨打/接听的所有电话的列表(电话号码,通话时间,座席)。第二个索引应按“年月日”日期进行分组,这样我就可以看到每个座席在这一天进行了多少次呼叫。这意味着我以idx_phone_calls
和idx_phone_calls_by_date
结尾。
当前,我从MysqL生成第一个索引,然后让Manticore进行查询(通过将MysqL主机设置为localhost。它可以工作,但是感觉好像我应该能够直接从索引中查询Manticore。 ,我正在努力寻找是否可行。
有更好的方法吗?
解决方法
Sphinx / Manticore拥有自己的GROUP BY功能。因此,也许无论如何也可以对原始索引运行最终查询,而无需第二个索引。
Sphinx的聚合(以某种方式)比MySQL更强大,并且可以执行某些“超级聚合”功能(例如使用WITHIN GROUP ORDER BY
)
但是否则,没有直接的方法可以创建另一个对象(例如,没有CREATE TABLE idx_phone_calls_by_date SELECT ... FROM idx_phone_calls ...
)
您指导indexer
来查询searchd
中数据的“解决方案”是好的。通常,这应该非常有效,特别是在localhost上,几乎没有开销。维护查询的逻辑分离,建立索引的索引器保持索引。