我有点怀疑你在刷屏

match_phrase优化请教

Elasticsearch | 作者 ridethewind | 发布于2019年03月05日 | 阅读数:2299

背景:
分词器为不管是中文、英文、还是数据,均按照每一位分一次词,想通过match_phrase +slop的方式来进行模糊匹配。
例子
想模糊搜zhangsanlisiwangwu@163.com,即zhangsanlisi*@163.com
使用语句
match_phase:{
"CONTEXT":"zhangsanlisi@163.com"
"slop":10
}
只有500g数据,搜索上述语句就耗时将近1min
除了改小slop,还有别的优化建议吗?

已邀请:

rochy - rochy_he

赞同来自:

首先需要更改分词方式
对与 email 来说 @ 符号后面的与前面的不需要同时匹配
后面的可以单独匹配
用户名使用上述的模糊搜索,这样速度会快一些
 
你上面的描述,可以使用 正则分词器,使用 @ 符号,讲 email  分为用户名和域名 两个部分
然后你使用通配符匹配的方式查询 zhangsanlisi*,使用 163.com 过滤域名
这样搜索速度将大大提升

要回复问题请先登录注册