比如在Booking.com
中输入搜索北京的酒店,之后左边有一个Filter by
,显示了搜索结果中每一个组别对应的结果数目。如下图(左边显示的Filter by
)。请问这一般怎么做的?有没有什么比较通用的方法或者库?先谢谢啦!
我现在想的就是,按照每一组(比如,Budget
,Popular
)去做一个 SQL 查询,得到此类中每个选项的对应的 count。但是,这样似乎增加了很多查询。像Booking.com
的组别可以有十多个。
后端:spring-boot, spring-data-jpa, spring-rest, mysql
前段:react
1
wcong 2017-05-22 11:38:08 +08:00
这都是搜索引擎做的,你可以查下 elasticsearch aggregation
|
2
hudotio OP @wcong 谢谢!
粗略看了一下,这个确实是跟 es 的 aggregation 和 facets 直接相关的。 感觉要把数据从 mysql 导入到 es 去才行啊。这样弄一下,好像很多都要重写啊。 参考: [How to build faceted search with facet counters using Elasticsearch]( https://blog.madewithlove.be/post/faceted-search-using-elasticsearch/) [ElasticSearch how to integrate with Mysql]( http://stackoverflow.com/questions/36152152/elasticsearch-how-to-integrate-with-mysql) |