クレートを使用することができます。あなたが示唆したように、あなたはいつでもElasticsearch APIをオンにすることができます。しかし、これらの集約を得る他の方法があります。
1)クラスタに複数のクエリを発行することを検討しましたか?たとえば、JavaScriptを使用してページを動的にロードする場合、最初に検索結果を返し、後でファセットを読み込むことができます。これにより、アプリケーションの全体的な応答時間も短縮されます。 CrateDB 2.1.x以降で
2)、あなたはあなたのクエリ内ファセットを含めることができサブクエリのサポートがあるでしょう:
select q1.id, q1.domain, q1.tag, q2.d_count, q3.t_count from websites q1,
(select domain, count(*) as d_count from websites where text like '%query%' group by domain) q2,
(select tag, count(*) as t_count from websites where text like '%query%' group by tag) q3
where q1.domain = q2.domain and q1.tag = q3.tag and q1.text like '%query%'
order by q1.id
limit 5;
これは、あなたが検索を持っている。このような結果表を提供しますクエリのドメインおよびタグ・カウントと並ん結果:
+----+--------------+-----------+---------+-----------+
| id | domain | tag | d_count | t_count |
+----+--------------+-------------+---------+---------+
| 1 | example.com | example | 2 | 3 |
| 14 | crate.io | software | 1 | 4 |
| 17 | google.com | search | 5 | 2 |
| 29 | github.com | open-source | 3 | 3 |
| 47 | linux.org | software | 2 | 4 |
+----+--------------+-------------+---------+---------+
免責事項:私はクレートに新たなんだ:)
出典
2017-06-30 15:04:31
mxm