2017-06-26 14 views
1

Unterstützt https://crate.io Facetten (für Facettensuche)?Crate.io: Facetten für die Suche?

Ich habe nichts in den Dokumenten gefunden. ElasticSearch replaced facets mit aggregations im Jahr 2014, aber die aggregation section in der Kiste docs spricht nur über SQL-Aggregation Funktionen.

Mein Anwendungsfall: Ich habe eine Liste von Websites, jeder Datensatz hat eine Domäne und ein Sprachfeld. Bei der Anzeige der Suchergebnisse möchte ich eine Liste aller Domänen erhalten, in denen die Suchergebnisse angezeigt werden, sowie eine Liste aller Sprachen, geordnet nach Anzahl der Vorkommen, damit die Suchergebnisse eingegrenzt werden können. Die Anzahl der Ergebnisse für diese einzelnen Facettenwerte wird ebenfalls angegeben.

Screenshot mit Facetten: screenshot

Antwort

1

Es gibt keine Möglichkeit, die Facetten ich von Kiste selbst wollen zu bekommen.

Stattdessen sind wir damit die Elasticsearch REST API in crate.yml jetzt

es.api.enabled: true 

.. und die ElasticSearch aggregation API.

1

Crate Facetten oder Elasticsearch Aggregationen unterstützt nicht direkt nutzen können. Wie Sie vorgeschlagen haben, können Sie die Elasticsearch API immer aktivieren. Es gibt jedoch andere Möglichkeiten, diese Aggregationen zu erhalten.

1) Haben Sie in Erwägung gezogen, mehrere Abfragen an den Cluster zu senden? Wenn Sie beispielsweise Ihre Seite dynamisch mit Javascript laden, können Sie die Suchergebnisse zuerst zurückgeben und die Facetten später laden. Dies sollte auch die Gesamtreaktionszeit der Anwendung verringern.

2) In CrateDB 2.1.x wird es Unterstützung für Unterabfragen sein, die es Ihnen ermöglichen, die Facetten in Ihrer Abfrage enthalten:

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; 

Dies gibt Ihnen eine Ergebnistabelle wie dieser, wo Sie die Suche haben Ergebnisse zusammen mit der Domain und Tag-Zählung für die Abfrage:

+----+--------------+-----------+---------+-----------+ 
| 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 | 
+----+--------------+-------------+---------+---------+ 

Disclaimer: ich bin neu in Crate :)