Lucene 等传统搜索引擎如何处理标记化和索引,为什么它们不使用整数映射来标记?

问题描述 投票:0回答:1

我一直在了解 Lucene 等传统搜索引擎的工作原理,我知道它们通常通过对语料库中的文本进行标记来构建倒排索引。然后这些代币将直接在索引中使用。

我的问题是:为什么这些搜索引擎在构建倒排索引之前不将所有标记转换为唯一整数(例如,

apple -> 435
super -> 653
等)?英语中的单词数量有限,比如一百万个。似乎使用整数而不是文本标记可能会减少索引大小,减少总语料库的大小,因为我使用整数而不是单词并加快搜索速度(因为处理数字数据应该更快)。

具体来说,我很好奇:

  1. 压缩效率:数字数据可以像文本一样有效地压缩吗?使用整数会显着提高压缩效率吗?
  2. 处理新令牌:传统方法如何管理新令牌,如果使用整数而不是文本,这个过程将如何改变?我假设不会有任何改变。
  3. 对排名和相关性计算的影响:使用整数标记而不是文本标记会影响排名和相关性计算(例如 TF-IDF、BM25),我的假设是不会再有任何变化。

如果您对在 Lucene 等系统中使用文本标记而不是整数的权衡和考虑因素有任何见解,我将不胜感激。也许我想到的一些警告或任何性能优势都可以忽略不计?

elasticsearch lucene full-text-search information-retrieval
1个回答
0
投票
  1. Elasticsearch 不仅处理英语单词,还处理其他语言的单词。即使是英语,不规则的单词也要处理,比如拼错的单词,aapple,这也是合法的。考虑到以上所有情况,如果使用数字测绘,这个数字将会非常大。
  2. 就压缩效率而言,数字确实比文字更好。例如,我们可以使用delta-encode和位打包来直接压缩。
© www.soinside.com 2019 - 2024. All rights reserved.