Crate.io:搜索的方面?
Crate.io: Facets for search?
https://crate.io是否支持分面(对于分面搜索)?
我没有在文档中找到任何内容。 crate 文档中的 ElasticSearch replaced facets with aggregations in 2014, but the aggregation section 仅讨论 SQL 聚合函数。
我的用例:
我有一个网站列表,每条记录都有一个域和一个语言字段。显示搜索结果时,我想获得搜索结果出现的所有域的列表,以及所有语言的列表,按出现次数排序,以便缩小搜索结果范围。还应给出这些单面值的结果数。
带分面的屏幕截图:
无法从板条箱本身获得我想要的方面。
我们现在 crate.yml
启用 ElasticSearch REST API
es.api.enabled: true
.. 并且可以使用 ElasticSearch aggregation API.
Crate 不直接支持分面或 Elasticsearch 聚合。正如您所建议的,您可以随时打开 Elasticsearch API。但是,还有其他方法可以获取这些聚合。
1) 您是否考虑过向集群发出多个查询?例如,如果您使用 Javascript 动态加载页面,则可以先 return 搜索结果,然后再加载分面。这也应该减少应用程序的整体响应时间。
2) 在 CrateDB 2.1.x 中,将支持子查询,这允许您在查询中包含方面:
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;
这会为您提供一个结果 table,其中您有搜索结果以及查询的域和标签计数:
+----+--------------+-----------+---------+-----------+
| 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 |
+----+--------------+-------------+---------+---------+
免责声明:我是 Crate 的新手 :)
https://crate.io是否支持分面(对于分面搜索)?
我没有在文档中找到任何内容。 crate 文档中的 ElasticSearch replaced facets with aggregations in 2014, but the aggregation section 仅讨论 SQL 聚合函数。
我的用例: 我有一个网站列表,每条记录都有一个域和一个语言字段。显示搜索结果时,我想获得搜索结果出现的所有域的列表,以及所有语言的列表,按出现次数排序,以便缩小搜索结果范围。还应给出这些单面值的结果数。
带分面的屏幕截图:
无法从板条箱本身获得我想要的方面。
我们现在 crate.yml
es.api.enabled: true
.. 并且可以使用 ElasticSearch aggregation API.
Crate 不直接支持分面或 Elasticsearch 聚合。正如您所建议的,您可以随时打开 Elasticsearch API。但是,还有其他方法可以获取这些聚合。
1) 您是否考虑过向集群发出多个查询?例如,如果您使用 Javascript 动态加载页面,则可以先 return 搜索结果,然后再加载分面。这也应该减少应用程序的整体响应时间。
2) 在 CrateDB 2.1.x 中,将支持子查询,这允许您在查询中包含方面:
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;
这会为您提供一个结果 table,其中您有搜索结果以及查询的域和标签计数:
+----+--------------+-----------+---------+-----------+
| 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 |
+----+--------------+-------------+---------+---------+
免责声明:我是 Crate 的新手 :)