原文地址: https://www.elastic.co/guide/cn/elasticsearch/guide/current/pros-cons-stopwords.html, 版权归 www.elastic.co 所有
英文版地址: https://www.elastic.co/guide/en/elasticsearch/guide/current/pros-cons-stopwords.html
英文版地址: https://www.elastic.co/guide/en/elasticsearch/guide/current/pros-cons-stopwords.html
请注意:
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
停用词的优缺点edit
现在我们拥有更大的磁盘空间,更多内存,并且还有更好的压缩算法。 将之前的 33 个常见词从索引中移除,每百万文档只能节省 4MB 空间。 所以使用停用词减少索引大小不再是一个有效的理由。 (不过这种说法还有一点需要注意,我们将在 停用词与短语查询 讨论。)
在此基础上,将这些词从索引里移除,会降低某种类型的搜索能力。将前面所列的那些单词移除会让我们难以完成以下事情:
-
区分
happy
和not happy
。 -
搜索乐队名称
The The
。 -
查找莎士比亚的名句 “
To be, or not to be
” (生存还是毁灭)。 -
使用挪威的国家代码:
no
。
移除停用词的最主要好处是性能,假设我们在一个有上百万文档的索引中搜索单词 fox
。或许 fox
只在其中 20 个文档中出现,也就是说 Elasticsearch 需要计算 20 个文档的相关度评分_score
从而返回前10个文档。现在我们把搜索条件改为 the OR fox
,几乎所有的文件都包含 the
这个词,也就是说 Elasticsearch 需要为所有一百万文档计算评分 _score
。 由此可见第二个查询肯定没有第一个的结果好。
幸运的是,我们有技术可以让常用词能被搜索到,同时还可以保持良好的性能。首先我们一块学习如何使用停用词。