• ElasticSearch学习——搜索技术基础知识(上)


    1. 数据搜索方式

    Elasticsearch作为一个搜索引擎,主要的任务就是对数据进行检索,为了更好的实现目的,首先需要对数据进行一定的了解。

    数据有两种类型:

    • 结构化数据
      • 特点:格式固定,长度有限。
    • 非结构化数据
      • 特点:格式不固定,长度不定。

    对于结构化数据,数据的搜索方式主要有顺序扫描关键词精确匹配关键词部分匹配等。

    对于非结构化数据,数据的搜索方式主要有顺序扫描全文检索两种方法。受到非结构化数据特点的影响,顺序扫描对于处理非结构化数据的效率很低,因此全文检索方式应运而生,而全文搜索就是Elasticsearch所要做的事情。

    2. 搜索引擎工作原理

    graph LR A(用户) --搜索关键词--> B(输入内容预处理) B --> C(搜索关键词查询) C --> D(索引库) E(互联网) --> F(网络爬虫) F --> G(网页库) G --> H(数据预处理) H --> I(数据索引) I --> D

    搜索引擎的工作原理分为两个阶段:

    • 网页数据爬取和索引阶段
      • 包括:网络爬虫、数据预处理、数据索引。
    • 搜索阶段
      • 包括:搜索关键词、输入内容预处理、搜索关键词查询。

    (1) 网页数据爬取和索引阶段

    1. 使用网络爬虫尽可能快、尽可能全地发现和抓取互联网上的各种网页。
    2. 被爬取的网页会被存入网页库,注意存入新网页之前需要进行查重检查,防止存入重复网页。
    3. 网页数据预处理程序不断地从网页库中取出网页进行必要的预处理。常见的预处理动作有去除噪声内容(版权声明文字、导航条、广告等)、关键词处理(如中文分词、去除停止词)、网页间链接关系计算等。网页经过预处理后,会被浓缩成以关键词为核心的内容。
    4. 将预处理过的数据进行数据索引过程。索引过程先后进行正向索引和倒排索引阶段,最终建立索引库。索引库的更新和维护通常采用增量方式进行。

    (2) 搜索阶段

    1. 对用户输入的关键词进行预处理(如删除不必要的字符等)。
    2. 根据分词规则进行分词。
    3. 向索引库发送搜索请求。
    4. 搜索引擎根据索引库返回的内容进行排序后返回给用户。

    3. 网络爬虫工作原理

      网络爬虫通过种子爬取网页的链接地址来寻找目标网页。从网站的一个页面,读取其中内容并通过其中包含的其他网页的链接来寻找下一个页面,如此循环,直到抓取所有内容。

    graph TD tableA[待爬取网址表A] --获取一个待爬取URL--> spider((爬虫)) spider --> content[获取网页内容] content --网页入库--> pagebox>网页库] content --> tableB[已爬取网址表B] content --> analyze_URL[网页中新URL解析] analyze_URL --> isRead{是否已访问} tableA --> isRead isRead --Yes--> finish((该URL处理结束)) isRead --NO,放入待爬取网址表A中--> tableA

      网络爬虫工作时的常规做法如图所示。

    (1) 爬取策略

    网络爬虫在爬取网络时需要根据一定的策略,常用的爬取策略有深度优先广度优先两种。

    原理

    深度优先:从种子站点开始,当子页面中的每一个可能的链接路径深入到不能再深入(即子页面中没有超链来进行更深入的爬取)时,返回父页面,继续爬取下一个子页面,如此循环,直到全部爬取完成。

    广度优先:从种子站点开始,将页面中的所有链接添加到待爬取表中,依次爬取,直到所有链接爬取完成。

    优缺点分析

    深度优先:只保存部分结点,占用空间少;有回溯操作,运行速度慢。

    广度优先:保留全部结点,占用空间大;无回溯操作,运行速度快。

    (2) 收录模式

    收录模式一般有两种:增量收集全量搜集

    全量搜集就是每次爬取网页都更新全部数据内容,特点是资源开销大、付出成本高、内容更新的时效性不高、网路宽带消耗高、更新时间长。

    增量收集避免了全量搜集的弊端,主要用于搜集新网页、搜集更新的网页、删除不存在的网页,但是网络爬虫的设计也会更加复杂。

    4. 网页分析

    网页分析动作发生在网络爬虫将爬取到的网页内容存储到网页库中之后。

    网页分析主要的分析动作:去除噪声网络内容摘要网页重要程度计算链接分析关键词提取/分词等。

    (1) 去除噪声

    原理

    通过去除广告、无关的导航条、版权信息、调查问卷等和文章主体无关的内容,减小索引结构规模。

    目的

    提高搜索的准确性,提高搜索速度。

    (2) 网络内容摘要

    摘要的生成方式主要有两种:静态生成动态生成

    静态生成方式直接从网页内容中提取一小段文字展示,这种方式“短、平、快”,但是展示内容可能与搜索的关键词无关。

    动态生成方式根据查询关键词在文档中的位置,提取其前后的文字,并将关键词高亮显示,保证展示的摘要与搜索的关键词的相关性。

    (3) 网页重要程度计算

    网页重要程度计算用于衡量网站的权威性。通过计算网页被引用的次数来衡量网站的权威性,呈正相关。

    (4) 链接分析

    通过链接分析,可以看出网页的权威程度和流行程度。

    从算法的角度来解析链接分析,可以将网页的链接关系看作有向图,网页的链接关系就变成了入度和出度。入度指的是网页可以通过其他网页的链接来访问,出度指的是网页中链接了其他网页,入度越大说明网页越权威、越流行。谷歌提出的PageRank算法便是谷歌搜索引擎的重要法宝。

    (5) 关键词提取/分词

  • 相关阅读:
    对xml的操作使用的类XElement的使用
    在js和C#中split应用和去除字符串分组后的空值
    C# 预定义语言
    C# 中利用 Conditional 定义条件方法
    快速结束占用端口
    详解C++中命名空间的意义和用法
    Template、ItemsPanel、ItemContainerStyle、ItemTemplate
    C++入门(2)
    C++入门(1)
    VS中的配置管理器
  • 原文地址:https://www.cnblogs.com/alittlecooing/p/Elasticsearch-Search_Basic-Part_One.html
Copyright © 2020-2023  润新知