“ElasticSearch应用场景”的版本间的差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
| Jihongchang(讨论 | 贡献) | Jihongchang(讨论 | 贡献)  | ||
| 第23行: | 第23行: | ||
| 如果用像 MySQL 这样的 RDBMS 来存储古诗的话,我们应该会去使用这样的 SQL 去查询:<syntaxhighlight lang="sql"> | 如果用像 MySQL 这样的 RDBMS 来存储古诗的话,我们应该会去使用这样的 SQL 去查询:<syntaxhighlight lang="sql"> | ||
| select name from poems where content like '%前%'; | select name from poems where content like '%前%'; | ||
| − | </syntaxhighlight> | + | </syntaxhighlight>这种我们称为顺序扫描法,需要遍历所有的记录进行匹配。 | 
| + | |||
| + | 不但效率低,而且还可能不符合我们搜索时的期望,比如我们在搜索“ABCD”这样的关键词时,可能还希望看到“A”、“AB”、“CD”、“ABC”的搜索结果。 | ||
2022年11月30日 (三) 08:51的版本
https://www.bilibili.com/video/BV1nF411F75k/?p=2
假设我们要搜索一首诗句内容中带“前”字的古诗
| name | content | author | 
|---|---|---|
| 静夜思 | 床前明月光,疑是地上霜。举头望明月,低头思故乡。 | 李白 | 
| 望庐山瀑布 | 日照香炉生紫烟,遥看瀑布挂前川。飞流直下三千尺,疑是银河落九天。 | 李白 | 
| …… | …… | …… | 
思考:用传统关系型数据库和ES实现会有什么差别?
如果用像 MySQL 这样的 RDBMS 来存储古诗的话,我们应该会去使用这样的 SQL 去查询:
select name from poems where content like '%前%';
这种我们称为顺序扫描法,需要遍历所有的记录进行匹配。
不但效率低,而且还可能不符合我们搜索时的期望,比如我们在搜索“ABCD”这样的关键词时,可能还希望看到“A”、“AB”、“CD”、“ABC”的搜索结果。