举个例子:
有一type,type中有zwname(职位名称),companyname(企业简称),companyname_all(企业全称)3个字符串(分词)。
表中有数据若干,其中A企业名称为XX工程师YY分院,有十个职位。
在搜索“工程师”的时候,因为会对3个字符串字段(上面说的)都进行匹配。经过排序后,比如第2~11个的数据恰好是A企业的10个职位。
有没有什么办法可以优化一下这种显示结果。
希望能达到的效果:
搜索“工程师“的时候,A企业的10个职位只显示3个,即第2~4的数据是A企业的职位,5~11是其他企业的职位。
有一type,type中有zwname(职位名称),companyname(企业简称),companyname_all(企业全称)3个字符串(分词)。
表中有数据若干,其中A企业名称为XX工程师YY分院,有十个职位。
在搜索“工程师”的时候,因为会对3个字符串字段(上面说的)都进行匹配。经过排序后,比如第2~11个的数据恰好是A企业的10个职位。
有没有什么办法可以优化一下这种显示结果。
希望能达到的效果:
搜索“工程师“的时候,A企业的10个职位只显示3个,即第2~4的数据是A企业的职位,5~11是其他企业的职位。
2 个回复
Rubricate - hi
赞同来自:
要么遇到工程师,就分两次请求,
一次带企业全称的field,只取三个,
一次不带企业全称的field,取7个
我之前的一个需求,就是需要散列结果,我就是多线程跑出来自己组装的
Abyss - 90后IT男
赞同来自:
我现在的做法是:
先用filter aggregation过滤一遍条件,然后用terms aggregation限制企业编号,最后用top hits aggregation取职位信息。
这样确实可以做到一个企业的职位信息只返回一条,但是这样的做法产生了2个新的问题:
1、查询速度慢
2、分页困难
第二个问题还好解决一些,但是查询速度慢这个就很致命了。我们做的实时搜索,速度慢这种方案就可以直接枪毙了~