处理人类语言 | Elasticsearch: 权威指南 | Elastic
2024-11-13
“我认识这句话里的所有单词,但并不能理解全句。” | ||
-- Matt Groening |
全文搜索是一场 查准率 与 查全率 之间的较量—查准率即尽量返回较少的无关文档,而查全率则尽量返回较多的相关文档。 尽管能够精准匹配用户查询的单词,但这仍然不够,我们会错过很多被用户认为是相关的文档。 因此,我们需要把网撒得更广一些,去搜索那些和原文不是完全匹配但却相关的单词。
难道你不期待在搜索“quick brown fox“时匹配到包含“fast brown foxed“的文档,或是搜索“Johnny Walker“时匹配到“Johnnie Walker“, 又或是搜索“Arnolt Schwarzenneger“时匹配到“Arnold Schwarzenegger“吗?
如果文档 确实 包含用户查询的内容,那么这些文档应当出现在返回结果的最前面,而匹配程度较低的文档将会排在靠后的位置。 如果没有任何完全匹配的文档,我们至少可以给用户展示一些潜在的匹配结果;它们甚至可能就是用户最初想要的结果。
´
, ^
, ¨
的变音符号,这样在搜索 rôle
的时候也会匹配 role
,反之亦然。请见 归一化词元。
fox
与 foxes
—以及时态上的差异—jumping
、 jumped
与 jumps
。请见 将单词还原为词根。
the
, and
, 和 or
,从而提升搜索性能。请见 停用词: 性能与精度。
quick
时也可以匹配 fast
,或者在搜索 UK
时匹配 United Kingdom
。 请见 同义词。
their
与 there
, meat
、 meet
与 mete
。 请见 拼写错误。
在我们可以操控单个单词之前,需要先将文本切分成单词, 这也意味着我们需要知道 单词 是由什么组成的。我们将在 词汇识别 章节阐释这个问题。
在这之前,让我们看看如何更快更简单地开始。
官方地址:https://www.elastic.co/guide/cn/elasticsearch/guide/current/languages.html