Mysql Sphinx/Solr用于关键字/频率查询

Mysql Sphinx/Solr用于关键字/频率查询,mysql,solr,sphinx,Mysql,Solr,Sphinx,我们需要能够对包含数百万条记录的表高效地执行两种类型的查询: 1) 返回包含关键字“y”的“x”最新记录 2) 返回一组记录的“x”最常用关键字 我们一直在考虑使用一些外部搜索服务器,如Sphinx或Solr,但我们不确定这些服务器是否能够支持这两种类型的查询 那么,哪种方法是能够执行这些类型查询的最有效的方法呢?Solr肯定可以同时执行这两种操作,前提是您已经正确设置了schema.xml文件。您的查询可能如下所示: 1 - http://localhost:8983/solr/solr-in

我们需要能够对包含数百万条记录的表高效地执行两种类型的查询:

1) 返回包含关键字“y”的“x”最新记录

2) 返回一组记录的“x”最常用关键字

我们一直在考虑使用一些外部搜索服务器,如Sphinx或Solr,但我们不确定这些服务器是否能够支持这两种类型的查询


那么,哪种方法是能够执行这些类型查询的最有效的方法呢?

Solr肯定可以同时执行这两种操作,前提是您已经正确设置了schema.xml文件。您的查询可能如下所示:

1 - http://localhost:8983/solr/solr-index/select?q=y&rows=x&sort=date+desc

2 - http://localhost:8983/solr/solr-index/select?q=*:*&rows=0&facet=true&facet.field=description
事实上,Solr的主要问题可能是将数据放入索引中。但是,即使是索引和优化也很快。

斯芬克斯甚至可以不费吹灰之力就完成1)。没问题

2) 这更棘手。它不支持开箱即用。但这是可以做到的。需要做大量的额外工作。基本上,您需要自己标记文本,并将ID存储为多值属性。然后可以在此mva列上运行GROUPBY查询

如果以上听起来有点吓人,你可能最好使用另一种解决方案——从上一次的回答来看,Solr似乎可以做到这一点