前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ElasticSearch Analysis分析

ElasticSearch Analysis分析

作者头像
smartsi
发布2019-08-07 09:02:55
5690
发布2019-08-07 09:02:55
举报
文章被收录于专栏:SmartSiSmartSi

分析(analysis)是将文本(如任何电子邮件的正文)转换为添加到倒排索引中进行搜索的tokensterms的过程。分析由 analyzer 分析器执行,分析器可以是内置分析器或者每个索引定制的自定义分析器。

1. 索引时分析(Index time analysis)

例如,在索引时,内置的英文分析器将会对下面句子进行转换:

代码语言:javascript
复制
"The QUICK brown foxes jumped over the lazy dog!"

转换为添加到倒排索引中的词条如下:

代码语言:javascript
复制
[ quick, brown, fox, jump, over, lazi, dog ]
1.1 指定索引时分析器

映射中的每个text字段都可以指定自己的分析器:

代码语言:javascript
复制
curl -XPUT 'localhost:9200/my_index?pretty' -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "my_type": {
      "properties": {
        "title": {
          "type":     "text",
          "analyzer": "standard"
        }
      }
    }
  }
}
'

在索引时,如果没有指定分析器,则会在索引设置中查找一个叫做default的分析器。如果没有找到,默认使用标准分析器 standard analyzer

2. 搜索时分析(Search time analysis)

同样的分析过程也可以应用于进行全文检索搜索(例如 match query 匹配查询)时,将查询字符串的文本转换为与存储在倒排索引中相同形式的词条。

例如,用户可能搜索:

代码语言:javascript
复制
"a quick fox"

这将由相同的英语分析器分析为以下词条(上面索引时举例使用的是英语分析器,如果不使用相同的分析器,有可能搜不到正确的结果):

代码语言:javascript
复制
[ quick, fox ]

即使在查询字符串中使用的确切单词不会出现在原始存储文本(quick vs QUICKfox vs foxes)中,查询字符串中的词条也能够完全匹配到倒排索引中的词条,因为我们已将相同的分析器应用于文本和查询字符串上,这意味着此查询将与我们的示例文档匹配。

2.1 指定搜索时分析器

通常情况下,在索引时和搜索时应该使用相同的分析器,全文查询(例如匹配查询 match query)将根据映射来查找用于每个字段的分析器。

用于搜索特定字段的分析器由一下流程决定:

  • 在查询中指定的分析器。
  • search_analyzer 映射参数。
  • analyzer 映射参数。
  • 索引设置中的default_search分析器。
  • 索引设置中的default分析器。
  • standard 标准分析器。

ElasticSearch版本 5.4

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-10-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 索引时分析(Index time analysis)
    • 1.1 指定索引时分析器
    • 2. 搜索时分析(Search time analysis)
      • 2.1 指定搜索时分析器
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档