奈何 ES 搜索玩的不 6 ,请教大佬 ES 搜索怎么实现这种类似 Linkedin 的搜索?
每个维度可以选择 0 个,1 个或多个条件
![]() | 1 hush3 2022-06-13 14:16:54 +08:00 should + terms ? |
![]() | 2 knightdf OP @hush3 比如以 Linkedin 为例,revenue 1-10, headcount 501-1000 或者 1001-5000 ,should 会全部当成 OR 来链接吧?但是 revenue 和 headcount 其实是 AND 链接 |
![]() | 3 hush3 2022-06-13 16:19:29 +08:00 我也是菜鸡。。如果是我可能会这么写,就是多套几个。。不知道行不行 bool: { must[{ range: { revenue: 1 - 10 } }, { bool: { should: [ range: headcount: 501 - 1000, range: headcount: 1001 - 5000, min_shouldmatch: 1 ] } } ] } |
6 qq1340691923 2022-06-13 17:54:43 +08:00 推荐一个 es 管理工具 https://github.com/1340691923/ElasticView ,它可以可视化组装条件或者写 sql 生成 es 的 dsl |
7 qq1340691923 2022-06-13 17:54:57 +08:00 |
8 BJL 2022-06-13 18:19:38 +08:00 不知道为什么,是我看的少的缘故嘛,感觉很少见到用 query_string 写的 |
![]() | 9 knightdf OP @qq1340691923 谢谢,我看看 |
10 BJL 2022-06-13 18:23:46 +08:00 revenue:[1 TO 10] AND (headcount:([501 TO 1000] OR [1001 TO 5000])) |
11 BJL 2022-06-13 18:26:14 +08:00 revenue:[1 TO 10] AND headcount:([501 TO 1000] OR [1001 TO 5000]) headcount 其实不用括起来 |
![]() | 13 misaka19000 2022-06-13 18:28:08 +08:00 should 套 must 不就行了 |
![]() | 14 hush3 2022-06-13 18:46:33 +08:00 @qq1340691923 感谢 这就装一个去 |
![]() | 15 knightdf OP @misaka19000 套中套是可以,就是条件多了有点麻烦 |
![]() | 16 Red998 2022-06-13 21:28:43 +08:00 套娃就行了 、 |
![]() | 17 ponymaggie 2022-06-13 22:57:55 +08:00 |
![]() | 18 strawberryBug 2022-06-14 08:39:16 +08:00 via Android should 可以设置最小匹配条件的个数,minimum_should_match |
![]() | 19 knightdf OP 谢谢各位,bool 套娃应该是可以满足的 |