我在大数据上使用elastic for searh。(超过十亿行,但只有2列: id和标题)
当我搜索id关键字时,速度很快,但如果我用“like”搜索标题上的文本,则需要很长时间。
慢速搜索案例:
CAPTION LIKE '%TES%'
OR CAPTION LIKE '%ASD%'
OR CAPTION LIKE '%DSSS%'
OR CAPTION LIKE '%VBCVB%'
OR CAPTION LIKE '%ASDAS%'
OR CAPTION LIKE '%GDGDF%'提前感谢
发布于 2019-05-06 16:40:23
因为您必须对整个索引进行全面扫描,以检查是否每个术语都匹配。这就是为什么在文档中明确指出它很慢的原因。
如果你想要更快的结果,最好使用基于ngram的策略,但这是以索引时间为代价的,索引内容的时间更长,磁盘空间也更大。
折衷的办法可能是不使用第一个%符号,比如:
CAPTION LIKE 'TES%'
OR CAPTION LIKE 'ASD%'
OR CAPTION LIKE 'DSSS%'
OR CAPTION LIKE 'VBCVB%'
OR CAPTION LIKE 'ASDAS%'
OR CAPTION LIKE 'GDGDF%'因为Elasticsearch可以做一些优化,不会检查索引中的每一个词,而只检查一个子集。
https://stackoverflow.com/questions/56001437
复制相似问题