Elasticsearch 理解重点

1.输入数据分析:
问题是,传入文档中的数据怎样转化成倒排索引,查询文本怎样变成可被搜索的词?这个数据转化的过程被称为分析。你可能希望某些字段经语言分析器处理,使得car和cars在索引中被视为同一个。

分析的工作由分析器完成,它由一个分词器 (tokenizer)和零个或多个标记过滤器 (token filter)组成,也可以有零个或多个字符映射器(character mapper)

Lucene中的分词器把文本分割成多个标记,基本就是词加上一些额外信息,比如该词在原始文本中的位置和长度。分词器的处理结果称为标记流(token stream),它是一个接一个的标记,准备被过滤器处理。

除了分词器, Lucene分析器包含零个或多个标记过滤器,用来处理标记流中的标记。下面是一些过滤器的例子。

  • 小写过滤器(lowercase filter):把所有的标记变成小写。
  • 同义词过滤器(synonyms filter):基于基本的同义词规则,把一个标记换成另一个同义的标记。
  • 多语言词干提取过滤器(multiple language stemming filter):减少标记(实际上是标记中的文本部分),得到词根或者基本形式,即词干。

过滤器是一个接一个处理的。所以我们通过使用多个过滤器,几乎可以达到无限的分析可能性。

最后,字符映射器对未经分析的文本起作用,它们在分词器之前工作。因此,我们可以很容易地从文本的整体部分去除HTML标签而无需担心它们被标记。

数据架构的主要概念

  1. 索引
    索引(index)是Elasticsearch对逻辑数据的逻辑存储,所以它可以分为更小的部分。你可以把索引看成关系型数据库的表。

  2. 文档
    存储在Elasticsearch中的主要实体叫文档(document)。用关系型数据库来类比的话,一个文档相当于数据库表中的一行记录。
    Elasticsearch的文档中,相同字段必须有相同类型。这意味着,所有包含title字段的文档, title字段类型都必须一样,比如string。

  3. 文档类型
    在Elasticsearch中,一个索引对象可以存储很多不同用途的对象。例如,一个博客应用程序可以保存文章和评论。文档类型让我们轻易地区分单个索引中的不同对象。每个文档可以有不同的结构,但在实际部署中,将文件按类型区分对数据操作有很大帮助。当然,需要记住一个限制,不同的文档类型不能为相同的属性设置不同的类型。例如,在同一索引中的所有文档类型中,一个叫title的字段必须具有相同的类型。

  4. 映射
    在有关全文搜索基础知识部分,我们提到了分析的过程:为建索引和搜索准备输入文本。文档中的每个字段都必须根据不同类型做相应的分析。举例来说,对数值字段和从网页抓取的文本字段有不同的分析,比如前者的数字不应该按字母顺序排序,后者的第一步是忽略HTML标签,因为它们是无用的信息噪音。 Elasticsearch在映射中存储有关字段的信息。每一个文档类型都有自己的映射,即使我们没有明确定义。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值