搜索引擎认知

搜索引擎是什么

  • 所谓搜索引擎,就是根据用户需求与一定算法,运用特定策略从互联网检索出制定信息反馈给用户的一门检索技术。
  • 搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上采集信息,在对信息进行组织和处理后,为用户提供检索服务,将检索的相关信息展示给用户的系统。搜索引擎是工作于互联网上的一门检索技术,它指在提高人们获取搜集信息的速度,为人们提供更好的网络使用环境。从功能和原理上搜索引擎大致被分为全文搜索引擎、元搜索引擎、垂直搜索引擎和目录搜索引擎等四大类。

倒排索引VS正排索引

  • 倒排索引**(英语:Inverted index)**,也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:“单词词典”和“倒排文件”。

    倒排索引有两种不同的反向索引形式:
      一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表。
      一个单词的水平反向索引(或者完全反向索引)又包含每个单词在一个文档中的位置。
      后者的形式提供了更多的兼容性(比如短语搜索),但是需要更多的时间和空间来创建。
      现代搜索引擎的索引都是基于倒排索引。相比“签名文件”、“后缀树”等索引结构,**“倒排索引”**是实现单词到文档映射关系的最佳实现方式和最有效的索引结构。

  • 正排索引是从网页到关键字的映射,一般含有网页ID、关键字(或关键字ID)、关键字出现次数、关键字出现位置等几个重要参数。例如给定两篇文档“中国人民爱中国”和“中国历史悠久”,经分词后创建的一个典型的正排索引如下所示:

    ​ 其中,Hits代表了关键字在文档中出现次数,List代表了关键字出现在文档中的位置。

    ​ 因此正排索引是通过网页来寻找关键字,可以知道一个网页中是否包含了某个关键字、关键字出现了几次以及关键字出现的位置。但是网页检索是通过关键字来找文档,因此需要把正排索引转换为倒排索引,才能满足实际的需求。

搜索相关性模型

分词

  • 中文分词原理

    • 基于词典或规则的方法

      • 定义:按照一定策略将待分析的汉字串与一个“大机器词典”中的词条进行匹配,若在词典中找到某个字符串,则匹配成功。

        1. 按照扫描方向的不同:正向匹配和逆向匹配
        2. 按照长度的不同:最大匹配和最小匹配
    • 基于统计的方法
      • 主要思想:把每个词看做是由词的最小单位各个字总成的,如果相连的字在不同的文本中出现的次数越多,就证明这相连的字很可能就是一个词。因此我们就可以利用字与字相邻出现的频率来反应成词的可靠度,统计语料中相邻共现的各个字的组合的频度,当组合频度高于某一个临界值时,我们便可认为此字组可能会构成一个词语。
  • 中文分词开源工具
    • ik
    • ansj
    • hanlp
    • jieba

索引质量评价标准

实际/预测 预测类为Class_A 预测类为其他类
实际类为Class_A TP: 实际为Class_A,也被正确预测的测试数据条数 FN: 实际为Class_A,但被预测为其他类的测试数据条数
实际类为其他类 FP:实际不是Class_A,但被预测为Class_A的数据条数 TN:实际不是Class_A,也没有被预测为Class_A的数据条数
  • 精准率: Precision=TP/(TP+FP) ,即在所有被预测为 Class_A 的测试数据中,预测正确的比率。
  • 召回率: Recall=TP/(TP+FN) ,即在所有实际为 Class_A 的测试数据中,预测正确的比率。

Elasticsearch 认知

Elasticsearch是什么?

​ Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。

Elasticsearch能干什么?

  • 提供快速查询
  • 确保结果的相关性
  • 超越精确匹配
    • 处理错误的拼写
    • 支持变体
    • 使用统计信息
    • 给予自动提示

Elasticsearch和Lucene,solr的不同是什么

solr和elasticsearch都是基于Lucene实现的!

  • Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;
  • Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式;
  • Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供;
  • Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch

Elasticsearch核心优势是什么?

  • Elasticsearch 很快。
  • Elasticsearch 具有分布式的本质特征.
  • Elasticsearch 包含一系列广泛的功能。
  • Elastic Stack 简化了数据采集、可视化和报告过程。

安装Elasticsearch最新版本V7.X

  • 关注最新特性参考文档

    彻底废弃多type支持,包括api层面,之前版本可在一个索引库下创建多个type。彻底废弃_all字段支持,为提升性能默认不再支持全文检索,即7.0之后版本进行该项配置会报错。新增应用程序主动监测功能,搭配对应的kibana版本,用户可监测应用服务的健康状态,并在出现问题后及时发出通知。取消query结果中hits count的支持(聚合查询除外),使得查询性能大幅提升(3x-7x faster)。这意味着,每次查询后将不能得到精确的结果集数量。新增intervals query ,用户可设置多字符串在文档中出现的先后顺序进行检索。新增script_core ,通过此操作用户可以精确控制返回结果的score分值。优化集群协调子系统,缩减配置项提升稳定性。新增 alias、date_nanos、features、vector等数据类型。7.0自带java环境,所以我们在安装es时不再需要单独下载和配置java_home。7.0将不会再有OOM的情况,JVM引入了新的circuit breaker(熔断)机制,当查询或聚合的数据量超出单机处理的最大内存限制时会被截断,并抛出异常(有点类似clickhouse)
    
  • 低版本升级

Elasticsearch 基础

Elasticsearch基础概念

  • 集群

    一个集群就是由一个或多个节点组织在一起,它们共同持有整个的数据,并一起提供索引和搜索功能。一个集群由一个唯一的名字标识,这个名字默认就是“elasticsearch”。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群
    
  • 节点

    一个节点是集群中的一个服务器,作为集群的一部分,它存储数据,参与集群的索引和搜索功能。和集群类似,一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。这个名字对于管理工作来说挺重要的,因为在这个管理过程中,你会去确定网络中的哪些服务器对应于Elasticsearch集群中的哪些节点。
    一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫做“elasticsearch”的集群中,这意味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做“elasticsearch”的集群中。
    在一个集群里,只要你想,可以拥有任意多个节点。而且,如果当前你的网络中没有运行任何Elasticsearch节点,这时启动一个节点,会默认创建并加入一个叫做“elasticsearch”的集群。
  • 分片 & 复制(副本) shards&replicas

    一个索引可以存储超出单个结点硬件限制的大量数据。比如,一个具有10亿文档的索引占据1TB的磁盘空间,而任一节点都没有这样大的磁盘空间;或者单个节点处理搜索请求,响应太慢。为了解决这个问题,Elasticsearch提供了将索引划分成多份的能力,这些份就叫做分片。当你创建一个索引的时候,你可以指定你想要的分片的数量。每个分片本身也是一个功能完善并且独立的“索引”,这个“索引”可以被放置到集群中的任何节点上。分片很重要,主要有两方面的原因:  1)允许你水平分割/扩展你的内容容量。  2)允许你在分片(潜在地,位于多个节点上)之上进行分布式的、并行的操作,进而提高性能/吞吐量。
    至于一个分片怎样分布,它的文档怎样聚合回搜索请求,是完全由Elasticsearch管理的,对于作为用户的你来说,这些都是透明的。
    在一个网络/云的环境里,失败随时都可能发生,在某个分片/节点不知怎么的就处于离线状态,或者由于任何原因消失了,这种情况下,有一个故障转移机制是非常有用并且是强烈推荐的。为此目的,Elasticsearch允许你创建分片的一份或多份拷贝,这些拷贝叫做复制分片,或者直接叫复制。
    复制之所以重要,有两个主要原因: 在分片/节点失败的情况下,提供了高可用性。因为这个原因,注意到复制分片从不与原/主要(original/primary)分片置于同一节点上是非常重要的。扩展你的搜索量/吞吐量,因为搜索可以在所有的复制上并行运行。总之,每个索引可以被分成多个分片。一个索引也可以被复制0次(意思是没有复制)或多次。一旦复制了,每个索引就有了主分片(作为复制源的原来的分片)和复制分片(主分片的拷贝)之别。分片和复制的数量可以在索引创建的时候指定。在索引创建之后,你可以在任何时候动态地改变复制的数量,但是你事后不能改变分片的数量。
    默认情况下,Elasticsearch中的每个索引被分片5个主分片和1个复制,这意味着,如果你的集群中至少有两个节点,你的索引将会有5个主分片和另外5个复制分片(1个完全拷贝),这样的话每个索引总共就有10个分片。
  • 索引 index

    一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母的),并且当我们要对对应于这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。在一个集群中,可以定义任意多的索引。
    
  • 类型 type

    在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑上的分类/分区,其语义完全由你来定。通常,会为具有一组共同字段的文档定义一个类型。比如说,我们假设你运营一个博客平台并且将你所有的数据存储到一个索引中。在这个索引中,你可以为用户数据定义一个类型,为博客数据定义另一个类型,当然,也可以为评论数据定义另一个类型。
    
  • 文档

    一个文档是一个可被索引的基础信息单元。比如,你可以拥有某一个客户的文档,某一个产品的一个文档,当然,也可以拥有某个订单的一个文档。文档以JSON(Javascript Object Notation)格式来表示,而JSON是一个到处存在的互联网数据交互格式。
    在一个index/type里面,你可以存储任意多的文档。注意,尽管一个文档,物理上存在于一个索引之中,文档必须被索引/赋予一个索引的type。
  • 路由 Routing

    Elasticsearch的路由机制与其分片机制有着直接的关系。Elasticsearch的路由机制即是通过哈希算法,将具有相同哈希值的文档放置到同一个主分片 中。这个和通过哈希算法来进行负载均衡几乎是一样的。
    
  • id序列

    文档ID标识文档。文档的索引/标识必须唯一。如果没有提供ID,则会自动生成
    id序列:?
    
  • Mapping映射

    mapping是处理数据的方式和规则方面做一些限制,如某个字段的数据类型、默认值、分析器、是否被索引等等,这些都是映射里面可以设置的,其它就是处理es里面数据的一些使用规则设置也叫做映射,按着最优规则处理数据对性能提高很大,因此才需要建立映射,并且需要思考如何建立映射才能对性能更好。
    
    • 动态映射

      顾名思义,就是自动创建出来的映射。es 根据存入的文档,自动分析出来文档中字段的类型以及存储方式,这种就是动态映射。

    • 静态映射

      如果希望新增字段时,能够抛出异常来提醒开发者,这个可以通过 mappings 中 dynamic 属性来配置。

      dynamic 属性有三种取值:

      • true,默认即此。自动添加新字段。
      • false,忽略新字段。
      • strict,严格模式,发现新字段会抛出异常。

      具体配置方式如下,创建索引时指定 mappings(这其实就是静态映射):

      PUT blog
      {"mappings": {"dynamic":"strict","properties": {"title":{"type": "text"},"age":{"type":"long"}}}
      }
      
  • 模板

    Elasticsearch索引template指:在创建新索引时将自动套用的模板。

    针对一个或多个索引。
    除了定义Mapping的全支持外,还可以指定Setting、别名等。
    适合数据量大、灵活多变的业务场景。
    

Elasticsearch 基本数据类型

  • 基础类型

    • string类型 (在ElasticSearch 旧版本中使用较多,从ElasticSearch 5.x开始不再支持string,由text和keyword类型替代。)

      • keyword

        keyword类型适用于索引结构化的字段,比如email地址、主机名、状态码和标签。如果字段需要进行过滤(比如查找已发布博客中status属性为published的文章)、排序、聚合。keyword类型的字段只能通过精确值搜索到.

      • text

        当一个字段是要被全文搜索的,比如Email内容、产品描述,应该使用text类型。设置text类型以后,字段内容会被分析,在生成倒排索引以前,字符串会被分析器分成一个一个词项。text类型的字段不用于排序,很少用于聚合。

    • 数据类型

      • 整数类型

        • long -263~263-1
        • integer -231~231-1
        • short -32768~32767
        • byte -128~127
      • 浮点类型
        • double 64位双精度IEEE 754浮点类型
        • float 32位单精度IEEE 754浮点类型
        • half_float 16位半精度IEEE 754浮点类型
        • scaled_float 缩放类型的的浮点数
    • 时间类型

      • date
    • 布尔类型

      • boolean
    • 二进制类型

      • binary

        进制字段是指用base64来表示索引中存储的二进制数据,可用来存储二进制形式的数据,例如图像。默认情况下,该类型的字段只存储不索引。二进制类型只支持index_name属性。

    • 区间类型

      • integer_range
      • float_range
      • long_range
      • double_range
      • date_range
  • 复杂类型

    • 数组类型

      • Array

        1. 字符数组: [ “one”, “two” ]
        2. 整数数组: productid:[ 1, 2 ]
        3. 对象(文档)数组: “user”:[ { “name”: “Mary”, “age”: 12 }, { “name”: “John”, “age”: 10 }]
    • 对象类型

      • Object

        JSON对象,文档会包含嵌套的对象

    • Nested类型

      • nested

        nested 对象类型可以保持数组中每个对象的独立性。nested 类型将数组中的每一饿对象作为独立隐藏文档来索引,这样每一个嵌套对象都可以独立被索引。{{"user.first":"Zhang","user.last":"san"},{"user.first":"Li","user.last":"si"}
        }优点
        文档存储在一起,读取性能高。
        缺点
        更新父或者子文档时需要更新更个文档。
        
  • 特定类型

    • GEO地理位置类型

      • Geo-point

        geo_point 就是一个坐标点
        PUT people
        {"mappings": {"properties": {"location":{"type": "geo_point"}}}
        }
        
      • Geo-shape

    • IP类型

      • ip

        ip类型的字段用于存储IPv4或者IPv6的地址

    • 自动补全类型

      • completion
    • string长度类型

      • tocken_count

        用于统计字符串分词后的词项个数。
        
    • percolate类型

      • mumur3
    • 父子索引Join类型

      • percolator
    • 别名类型

      • alias

Elasticsearch 基本检索类型

  • 检索和过滤

    • 检索和过滤的区别

      1. 相关度处理上的不同

        filter —— 只根据搜索条件过滤出符合的文档, 将这些文档的评分固定为1, 忽略TF/IDF信息, 不计算相关度分数;
        query —— 先查询符合搜索条件的文档, 然后计算每个文档对于搜索条件的相关度分数, 再根据评分倒序排序.

      2. 性能上的对比

        filter 性能更好, 无排序 —— 不计算相关度分数, 不用根据相关度分数进行排序, 同时ES内部还会缓存(cache)比较常用的filter的数据 (使用bitset <0或1> 来记录包含与否).

        query 性能较差, 有排序 —— 要计算相关度分数, 要根据相关度分数进行排序, 并且没有cache功能.

    • 检索和过滤的适用场景

      1. 业务关心的、需要根据匹配的相关度进行排序的搜索条件 放在 query 中;
      2. 业务不关心、不需要根据匹配的相关度进行排序的搜索条件 放在 filter 中.
  • 结构化检索

    • 精确匹配检索

      term 查询会查找我们指定的精确值。term 查询是简单的,它接受一个字段名以及我们希望查找的数值。

      • term 单值精确匹配
      • terms 多值精确匹配
    • 范围检索

      range 查询可同时提供包含(inclusive)和不包含(exclusive)这两种范围表达式,可供组合的选项

      gt: > 大于(greater than)
      lt: < 小于(less than)
      gte: >= 大于或等于(greater than or equal to)
      lte: <= 小于或等于(less than or equal to)
      
      • range query
    • 存在与否检索

      • exists query
    • 前缀检索 匹配包含 not analyzed 的前缀字符:

      • prefix query
    • 通配符模糊检索

      匹配具有匹配通配符表达式( (not analyzed )的字段的文档。 支持的通配符:
      1),它匹配任何字符序列(包括空字符序列);
      2)?,它匹配任何单个字符。
      请注意,此查询可能很慢,因为它需要遍历多个术语。
      为了防止非常慢的通配符查询,通配符不能以任何一个通配符
      或?开头。

      • wildcard query
    • 正则检索

      正则表达式查询允许您使用正则表达式术语查询。

      • regexp query
    • 类型检索

      • type query

        GET /my_index/_search
        {"query": {"type" : {"value" : "xext"}}
        }
        
    • ID检索

      返回指定id的全部信息。

      • ids query
    • 模糊检索

      模糊查询查找在模糊度中指定的最大编辑距离内的所有可能的匹配项,然后检查术语字典,以找出在索引中实际存在待检索的关键词。

      • fuzzy query
  • 全文检索

    • 分词全文检索
    • 短语检索
    • 短语前缀检索
    • 多字段匹配检索
    • 支持与或非的字符串检索
    • 简化的字符串检索
  • 复合检索

    • 固定得分检索
    • bool组合检索
      • must
      • should
        • minimum should match
      • must_not
    • 改变评分检索
      • Dis Max query
      • function score query
      • Boosting query
  • 特定检索

    • 父子文档检索

      • Nested 检索
      • 父子检索
    • Geo 类型检索
    • 相似文章检索
      • more like this
    • 脚本检索
      • script

Elasticsearch 基本聚合类型

  • Metric聚合

    • cardinality 去重
    • Avg 聚合
    • Max 聚合
    • Min 聚合
    • Sum 聚合
  • Buckting聚合
    • Terms 分组聚合
    • 立方图Histogram聚合
    • 时间区间聚合Data Histogram聚合
    • 过滤Filter聚合
    • Nested聚合
  • Pipeline聚合
    • Bucket script 聚合
    • Bucket Selector 聚合
    • Bucked Sort聚合
    • Max/Min/AVG/Sum Bucket 聚合
  • Matrix聚合
    • 后续版本可能会删除

Elasticsearch 基本操作

  • Elasticsearch 集群基本操作

    • 集群状态分类

      • green
      • yellow
      • red
      • health API
    • 集群状态监控
      • 集群状态 state
      • 集群统计 stats
      • 集群任务管理 _tasks
      • 节点信息 _nodes
      • 活跃线程信息 nodes/hot_threads
    • 集群备份
      • _snapshot
      • _restore
  • Elasticsearch 索引基本操作
    • 增 put index
    • 删 delete index
      • 索引数据迁移

        • reindex
        • 第三方工具
          • elasticsearch-dump
          • Elasticsearch-Exporter
          • logstash
          • elasticsearch-migration
      • 修改副本数
        • 注意索引一旦创建,分片数不可以更改,除非reindex
      • 索引压缩
        • shrink
      • Get index 结合 _settings
      • 单个文档写入 put document
  • Elasticsearch 文档基本操作
      • 单个文档写入 put document
      • 批量写入 bulk写入
      • 第三方导入
        • logstash_input *

          • 关系型数据库导入

            • mysql
            • sql server
            • oracle
            • pgsql
          • 非关系型数据库导入
            • mongo
            • redis
          • 大数据导入
            • hadoop
            • spark
        • flume
        • kafka-connector kafka实时数据流
      • 单个删除 delete document
      • 批量删除 delete by query
      • 单个修改 update 结合 script
      • 批量修改 update_by_query
      • 单个索引
      • 批量索引 scroll 游标遍历
      • 分页 from+size
    • 高亮
      • Unifled Highlighter 默认
      • plain Highlighter
      • fvh highlighter 适合大文件
    • 推荐
      • Term suggester
      • Phrase suggester
      • Completion suggester
      • Context suggester
    • 分词
      • 中英文分词的区别
      • 中文分词插件
        • ik
        • jieba
        • ansj
      • 动态更新词典策略
    • 同义词
      • 同义词词典配置
    • 调试
      • profile:true

Elasticsearch 常用工具

  • kibana 工具 xpack 提升安全
  • Head 浏览器插件
  • cerebro 监控工具

Elasticsearch 进阶

Elasticsearch 集群规划

  • Elasticsearch 节点数规划

    • Master 主节点
    • Client 路由节点
    • data 数据节点
  • Elasticsearch 分片/副本规则
    • Elasticsearch 每个分片支持的数据量
    • 业务数据分类梳理VSES存储
  • Elasticsearch 堆内存核心原理
  • Elasticsearch 部署优化
    • 堆内存优化设置
    • 线程数,队列优化设置
    • 候选主节点设置
    • 更新中文分词词典

Elasticsearch 数据建模

  • Elasticsearch 数据建模的重要性
  • Elasticsearch 建模流程

Elasticsearch 生命周期管理

  • 基于时间轴动态创建索引

    • template
    • rollover
  • 定时清理索引 curator
  • Elasticsearch 冷热数据分离

Elasticsearch 写入性能优化

  • Elasticsearch 写入为什么慢

    • 没有使用批量操作
    • 使用批量操作,但是设置不对
    • ES队列线程池设置不合理
  • Elasticsearch 写入提速
    • 逐步调大批量请求数
    • 增加刷新间隔
    • 写入前关闭副本
    • 禁用refresh
    • 尽量使用自动生成id

Elasticsearch 检索性能优化

  • Elasticsearch 索引为什么慢

    • 索引设置不合理

      • 如:所有数据写入一个固定索引
    • Mapping 映射字段设置不合理
    • DSL 设置不合理 有优化空间
      • 如:wildcard
    • 返回字段非常多
      • 如:cont/html_cont
    • 慢日志查询
    • 监控集群状态
      • CPU,内存,堆内存使用率
      • 确认是否有并行写入等
  • Elasticsearch 索引提速
    • 先确认是哪里慢了
    • 硬件层面
      • 预留足够多内存做内存缓存
      • 更快的硬件
    • 数据层面
      • 提前数据建模
      • 减少索引字段
      • Mapping 优化
      • 避免使用script
      • 使用近似日期
      • 只读数据force_merge
      • 范围索引使用keyword而非range
    • 缓存层面
      • 使用文件系统缓存
      • preference优化缓存利用率

Elasticsearch 磁盘读写优化

Elasticsearch 插件开发

Elasticsearch 集群高效监控

  • kibana 分析+使用

Elasticsearch 底层核心原理

  • 写入原理
  • 检索原理

Elasticsearch 实践

Elasticsearch 日志分析

  • 借助ELK可视化分析

Elasticsearch 全文检索

  • 梳理需求,写出需求文档,设计文档
  • 创建模板,索引,Mapping
  • 导入数据 tika 文档解析整合
  • 检索实战
  • 聚合实战
  • 数据可视化

Elasticsearch 学习路线相关推荐

  1. Elasticsearch系列「」学习路线

     Elasticsearch 基础认知 重磅 | Elasticsearch 7.X学习路线图 终于等到你,Elasticsearch 7.X视频教程发布! Elasticsearch 7.0 正式发 ...

  2. 哪本python入门书内容最详细-重磅 | 由浅入深的 AI 学习路线,最详细的资源整理!...

    原标题:重磅 | 由浅入深的 AI 学习路线,最详细的资源整理! [导读] 本文由知名开源平台,AI技术平台以及领域专家: Datawhale, ApacheCN, AI有道和 黄海广博士联合整理贡献 ...

  3. 2018大数据学习路线从入门到精通

    最近很多人问小编现在学习大数据这么多,他们都是如何学习的呢.很多初学者在萌生向大数据方向发展的想法之后,不免产生一些疑问,应该怎样入门?应该学习哪些技术?学习路线又是什么?今天小编特意为大家整理了一份 ...

  4. Java 从入门到高级学习路线

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Java 从入门到高级学习路线 <一>1.Jvm 部分 Jvm 内存模型.Jvm 内存结 ...

  5. 大数据开发初学者学习路线

    目录 前言 导读: 第一章:初识Hadoop 第二章:更高效的WordCount 第三章:把别处的数据搞到Hadoop上 第四章:把Hadoop上的数据搞到别处去 第五章:快一点吧,我的SQL 第六章 ...

  6. 大数据开发者必走的学习路线

    导读: 第一章:初识Hadoop 第二章:更高效的WordCount 第三章:把别处的数据搞到Hadoop上 第四章:把Hadoop上的数据搞到别处去 第五章:快一点吧,我的SQL 第六章:一夫多妻制 ...

  7. 【AI自学】 完备的 AI 学习路线,最详细的资源整理!

    [导读] 本文由知名开源平台,AI技术平台以及领域专家:Datawhale,ApacheCN,AI有道和黄海广博士联合整理贡献,内容涵盖AI入门基础知识.数据分析\挖掘.机器学习.深度学习.强化学习. ...

  8. 大数据学习路线2019版(附全套视频教程及网盘下载)

    什么是大数据? 大数据(BIG DATA)是指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发现力和流程优化能力的海量.高增长率和多样化的 ...

  9. 干货:18 张思维导图,后端技术学习路线长这样!

    来源 |后端技术学堂(ID:lemon10240) 作者 | LemonCoder 头图 | CSDN下载自视觉中国 思来想去,学习方向和路线很重要.比起具体的技术细节,可复制的经验.清晰的学习路线, ...

最新文章

  1. 网吧电源和网络布线经验谈(1)
  2. 重载运算符作为成员函数还是非成员函数
  3. Java主要知识结构
  4. 精读《Function VS Class 组件》
  5. TP5 实现转盘抽奖
  6. 从0开始配置Flutter并运行demo
  7. 解决vue中路由跳转同一个路径报错
  8. Maven基础及概念
  9. java 实例域_Java实例域初始化方法及顺序
  10. PoolTogether本周Loot Box奖金组合中新增加入ESSAY代币
  11. SharePoint 2013 Preview Single Server 评估环境安装与简单试用
  12. XRHT电钢琴电子琴实训室教学管理系统配置方案
  13. 斐讯T1电视盒子刷机指南,已排大坑
  14. 商品期货日内 Dual Thrust 交易策略
  15. 量子力学在计算机上的应用论文,量子力学论文.doc
  16. 在线地图地址3857+4326
  17. linux shell题库,shell习题-30
  18. autojs遍历当前页面所有控件_伙伴系统:页面分配器
  19. win10 tagWnd部分成员逆向(窗口隐藏,窗口保护)
  20. 物联网安全与隐私保护之物联网安全体系

热门文章

  1. 打通形态选股和条件选股链路!股票量化分析工具QTYX-V2.4.8
  2. ES6 --- Promise深入学习(二)Promise,then,catch,finally,及使用示例
  3. 物流巨头 CMA CGM 离线以阻止恶意软件攻击
  4. 学完计算机绘图收获有哪些,国开电大-计算机绘图(本)-形考任务检测1-6答案...
  5. 外链专员常用建设网站外链的方法
  6. 没有经验的seo专员
  7. 扩张受阻,驴妈妈、赞那度、遨游定制们该如何突围?
  8. 美团云驴妈妈技术交流 支撑千万日订单的云计算基础运维
  9. MySQL还能这样玩---第一篇之你所不知道的命令
  10. 京东CTO的笔记23种设计模式和5大读源码方法...!网友:这次稳了...