大数量情况下 如何提升ES match query的响应速度呢
公司的信息 放在ES中的 查询公司信息
curl -XGET 'localhost:9201/company/_search?pretty' -H 'Content-Type: application/json' -d'
{
"query": {
"match": {
"name": {
"query": "北京公富信息",
"operator": "and"
}
}
}
}
'
查不出记录来 但是存在对应公司 : 北京公富信息技术有限公司
原因:
北京公富信息 分词后: 北京 公 富 信息
北京公富信息技术有限公司 分词后 北京 公 富 信息技术
注: 用的是ik_smart
信息没有命中 故没有查询出记录来
operator改成or 可以查出记录来
"operator": "or"
但是 性能慢了好多 共有95185696条公司记录
如 搜索 甘肃德源有限责任公司
and 用时: 3s
or 用时:23s
问:
如果用or的话 有没办法 加快查询速度呢 ?
参考文档:
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query.html#_phrase
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
没有 但是仍建议你先看下:https://www.elastic.co/guide/en/elasticsearch/reference/master/tune-for-search-speed.html
楼主解决了吗?我也碰到同样问题了,查询响应有点慢。
引用来自“SHA-256”的评论
控制一下字典?es可以自定义一个字典让分词更准确,不知道能不能解决你的问题
你这问题不应该是自定义下字典吗,分词有问题嘛
控制一下字典?es可以自定义一个字典让分词更准确,不知道能不能解决你的问题