亲,只收二进制

es 写入数据后通过模糊查询要较长时间才可以查询到

Elasticsearch | 作者 tacsklet | 发布于2020年07月02日 | 阅读数:2800

服务器运行环境信息; Red Hat
软件版本;6.3
索引5个分片1个副本,每个分片大约30G,text字段,用edgeNGram做了分词。refresh_interval:1s。
在写入数据后,通过get API 可以直接查到此条数据。但是通过wildcard模糊查询查这条数据的时候,一开始是查不到的,要等十几秒后才能查到。十几秒时间太长了。
请问这样的原因是什么,如何才能通过条件查询在写入之后尽快查到此条数据。
 
已邀请:

redhat

赞同来自:

你的wildcard dsl是怎样的?

f_on

赞同来自:

贴一下你的语句

tacsklet - 公司有用到es

赞同来自:

后来了解到没有那么夸张,应该是3秒之后可以查到。我这边也没有具体的语句,只能给个类似的,据说很简单没别的东西:
 
{
"query":{
"wildcard":{
"testfield": "21000032500763*"
}
}
}

pony_maggie - 公众号:犀牛饲养员的技术笔记

赞同来自:

你的文档数量是多少,wildcard本来性能就容易差,text字段类型查询的时候是一个个字段去比较的。
 

heli - 90后IT男

赞同来自:

使用edgeNGram分词后,假设数据是:21000032500763dsasd131fdaf12,分词的时候会生成一个'21000032500763'的term,直接用match就可以了,不需要使用wildcard查询,当然前提是分词配置的最大长度有够长

要回复问题请先登录注册