奈何 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 套娃应该是可以满足的
|