分面搜索:能否用单个Facet(如P1_CURR)同时过滤两列欧元币种?
| curr_0 | amount_0 | curr_1 | amount_1 |
|---|---|---|---|
| eur | 100 | usd | 120 |
| gbp | 70 | eur | 40 |
| gbp | 200 | usd | 10 |
| usd | 10 | eur | 20 |
分面搜索中单个Facet同时过滤双币种列的可行性
可以实现,但需要在数据索引阶段做预处理:
- 新增一个
P1_CURR字段,将每条记录里curr_0和curr_1的币种值都存入该字段(比如某条记录的curr_0是eur、curr_1是usd,那P1_CURR就包含eur和usd两个值) - 分面搜索时,直接基于
P1_CURR这个Facet筛选"eur",就能同时命中所有curr_0或curr_1为欧元的记录
如果不做索引预处理,仅靠查询阶段的逻辑,没法通过单个Facet实现——此时需要分别针对curr_0和curr_1两个字段设置Facet,再用OR逻辑组合筛选,但这已经不属于单个Facet的应用场景了。
内容的提问来源于stack exchange,提问作者Oguen
相关产品推荐
相关产品推荐

