2017-06-26 17 views
1

https://crate.ioはファセット(ファセット検索用)をサポートしていますか?Crate.io:検索のためのファセット?

私はドキュメントで何も見つかりませんでした。 2014年のElasticSearch replaced facetsaggregationsがありますが、クレートドキュメントのaggregation sectionはSQL集計関数についてのみ述べています。

私の使用例: ウェブサイトのリストがあり、各レコードにはドメインと言語フィールドがあります。検索結果を表示するときに、検索結果が表示されるすべてのドメインのリストとすべての言語のリストを出現回数順に並べて、検索結果を絞り込むことができます。それらの単一ファセット値の結果の数も与えなければならない。ファセットを有する

スクリーンショット:screenshot

答えて

1

クレート自体から私が欲しいファセットを取得する方法はありません。

は、代わりに、私たちは今、

es.api.enabled: true 

crate.ymlにElasticSearch REST APIを有効にしている...と直接面またはElasticsearch集計をサポートしていませんElasticSearch aggregation API.

1

クレートを使用することができます。あなたが示唆したように、あなたはいつでも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 | 
+----+--------------+-------------+---------+---------+ 

免責事項:私はクレートに新たなんだ:)

関連する問題