谈谈ElasticSearch分词与倒排索引的原理?

1 个回答

  • 王青
    上了生活的贼船,就要做快乐的海盗。
    ### 分词 分词是搜索引擎中用于检索的重要技术,目的是将文本分割成更小的单元(通常是单词或词组),以便进行有效的索引和搜索。 - **英文分词**:在英文中,分词相对简单,因为单词之间通过空格分隔。例如,“I am a student”这句话可以直接分为“I”、“am”、“a”、“student”四个单词。 - **中文分词**:中文分词则复杂得多,因为中文句子中没有空格来分隔词语。例如,“我是学生”这句话,如果简单地按字符分割,会变成“我-是-学-生”,这样并不能很好地表达原意。正确的分词应该是“我-是-学生”。然而,在中文中存在一些歧义情况,例如“使用-用户”与“使-用户”,人类很容易辨别,但对机器来说是个挑战。因此,市面上有各种分词器,有的强调效率,有的强调准确率。 ### 倒排索引 倒排索引是为了解决正排索引的局限性而产生的,它是搜索引擎中用来快速检索文档内容的重要技术。 - **正排索引**:正排索引指的是按照文档顺序来查找信息。例如,当你记得某个文档中有关于“ES 的常见问题总结”的内容时,你会打开文档,然后从头到尾翻页,直到找到相关部分。这是通过文档找内容的过程。 - **倒排索引**:倒排索引则是反过来的,是通过内容来找文档。例如,当你搜索“ES 的常见问题”时,倒排索引会告诉你这个内容出现在哪些文档中,比如“D:/分布式问题总结.doc”。倒排索引并不会存储文档的全部内容,而是存储文档中出现的词语(经过分词处理后的词)及其对应的文档位置。这样,当用户输入搜索词时,搜索引擎可以迅速定位到相关的文档。 总结一下,分词是为了将文本拆解成便于检索的小单元,而倒排索引则是通过这些小单元快速定位到包含这些内容的文档。
    发布于 2024-08-11 09:37 •IP属地 江苏
    举报
    评论
    收藏