您现在的位置是:首页 > 文章详情

[ElasticSearch]分析之Analysis(分析)

日期:2017-05-21点击:368

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

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

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

"The QUICK brown foxes jumped over the lazy dog!"

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

[ quick, brown, fox, jump, over, lazi, dog ]

1.1 指定索引时分析器

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

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 匹配查询)时,将查询字符串的文本转换为与存储在倒排索引中相同形式的terms

例如,用户可能搜索:

"a quick fox"

这将由相同的英语分析器分析为以下terms(上面索引时举例使用的是英语分析器):

[ quick, fox ]

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

2.1 指定搜索时分析器

通常情况下,在索引时和搜索时应该使用相同的分析器,而全文查询full text queries(例如匹配查询 match query)将使用映射来查找用于每个字段的分析器(use the mapping to look up the analyzer to use for each field.)。

通过查找用于搜索特定字段的分析器来决定::

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

ElasticSearch版本

5.4

原文:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis.html

原文链接:https://yq.aliyun.com/articles/632172
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章