Search

Search 简介

什么时Search

Transwarp Search基于开源的Elasticsearch进行开发,在其架构的基础上进行了多种功能优化,并通过Esdrive实现了SQL交互方式。Transwarp Search是一个可扩展的分布式全文搜索和分析引擎。

在TDH中Search主要扮演两个角色。首先Search是Hyperbase全文索引的底层实现,其次也作为一个单独的服务。作为一个单独的服务,Search既是一个强大的搜索引擎,又是一个分布式的文件存储系统。

常见的应用场景有海量数据的存储和搜索、日志分析等。

Search的特点

List item

  1. 作为一个分布式的实时文档存储,Search独创的分层存储数据结构,以及支持内存/SSD/SATA的自动分层存储,并且利用堆外内存管理,具有相当优秀的单节点存储能力,集群对于PB级别的数据存储完全没有问题。除此之外还支持结构化、半结构化以及非结构化数据的存储分析。
  2. 除此之外,Search同时还是一个分布式实时搜索引擎。其对冷热数据分级进行存储,并能毫秒级的实现实时关键字检索。计算紧贴数据和索引,在亚秒级别完成在线分析等。
  3. 通过Inceptor来实现SQL引擎与搜索引擎的融合,实现以SQL方式创建索引和全文搜索。
  4. 具有极强的集群扩展性,能实现上千个节点的横向扩展。

Search的主要适用场景

  1. 文档数据库。Search可以作为一个分布式文档存储来存储半结构化、非结构化的数据,其功能和性能均优于MongoDB。
  2. 日志分析与监控。数据统计,以及日志类时间序列数据的存储和分析。
  3. 高聚合率的统计分析,如热词追踪。
  4. 作为一个搜索引擎来实现多条件模糊查询以及不指定列的全文搜索。

Search原理

数据模型

  1. Index(索引):Transwarp Search以 Index
    为单位来组织数据(Document),一个Index下的数据常常有相似的特征。每个Index都有一个名字用于在操作中指代,Index名必须都为英文小写。并且这里的Index(索引)和Transwarp
    HBase中的索引(本地索引、局部索引、全文索引等)不是一个概念。这里的索引是Transwarp Search中的数据对象。
  2. Type(分类):在一个 Index 下,您可以定义一个或多个 Type
    。Type是Index的逻辑上的分类,分类逻辑完全由用户决定。例如存储员工信息的Index可以按部门分类(分为财务部Type、销售部Type、研发部Type等)也可以按办公地点分类(分为北京办公室Type、上海办公室Type、广州办公室Type等)。
  3. Document(文档):Document 是Transwarp Search中最基础的数据单元。例如,员工信息Index中一名员工的信息可以作为一个Document保存;商品信息Index中一件商品的信息也可以作为一个Document保存。Document以JSON格式存储。
  4. Field(字段):Document中的信息存储在字段(Field)中。

分词与索引

分词

分词的过程为:将一个文本块拆分为单独的词( term ),并标准化这些词为标准形式,提高它们的“可搜索性”或“查全率”。分词的工作是由分词器完成的。

分词器有很多种类,比如英文分词器Standard、English或者中文分词器ik、mmseg。不同分词器会产生不同的分词效果,产生不同的索引,所以相同的查询使用不同的分词器会产生不同的结果。

倒排索引

Search使用倒排索引技术来实现全文搜索。倒排索引主要由单词词典和倒排文件两部分组成。

倒排索引会按照指定语法对每一个文档进行分词,然后维护一张表,列举所有文档中出现的单词以及它们出现的文档编号和出现频率。搜索时同样会对关键词进行同样的分词分析,然后查表得到结果。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值