分析器

分析器

es 5.4.2 在已有索引上自定义词性分析器,必须要先关掉索引吗,能不关掉索引的情况下,新增自定义分析器吗

Elasticsearchzyb1994111 回复了问题 • 3 人关注 • 2 个回复 • 126 次浏览 • 2018-09-26 16:08 • 来自相关话题

用户名如何建立分析器

Elasticsearchqw8613243 回复了问题 • 3 人关注 • 3 个回复 • 200 次浏览 • 2018-08-01 23:42 • 来自相关话题

有没有可以实现“zhang”分词之后形成‘z’'h''a'...的分析器?

Elasticsearchjlhde123 回复了问题 • 2 人关注 • 1 个回复 • 307 次浏览 • 2018-04-10 16:25 • 来自相关话题

索引映射与分析整理

Elasticsearchjhonbo 发表了文章 • 1 个评论 • 450 次浏览 • 2018-02-01 17:29 • 来自相关话题

索引相关 一、映射与分析 Elasticsearch 中的数据可以概括的分为两类:精确值和全文。 为了促进在全文域中的匹配查询,Elasticsearch 首先 分析 文档,之后根据结果创建 倒排索引; 倒排索引:倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包 括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来 确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文 件,简称倒排文件(inverted file)。 分析器:字符过滤器 首先,字符串按顺序通过每个 字符过滤器 。他们的任务是在分词前整理字符串。 一个字符过滤器可以用来去掉HTML,或者将 & 转化成 `and`。 分词器: 其次,字符串被 分词器 分为单个的词条。一个简单的分词器遇到空格和标点的时 候,可能会将文本拆分成词条。 Token 过滤器: 最后,词条按顺序通过每个 token 过滤器 。这个过程可能会改变词条(例如,小 写化 Quick ),删除词条(例如, 像 a`, `and`, `the 等无用词),或者增加 词条(例如,像 jump 和 leap 这种同义词) 当我们 索引 一个文档时使用分析器,它的全文域被分析成词条以用来创建倒排索引当你查询一个 全文 域时, 会对查询字符串应用相同的分析器,以产生正确的搜索词条列表。 当你查询一个 精确值 域时,不会分析查询字符串, 而是搜索你指定的精确值。 elastic内置的分析器:standard,whitespace,simple,english 创建一个自定义分析器编辑: PUT /my_index { "settings": { //配置自定义的分析器  "analysis": { "char_filter": {                                            "&_to_and": {                                                                 "type": "mapping",                                                                 "mappings": [ "&=> and "]                                                                }                                          },                     "filter": {                                     "my_stopwords": {                                                                   "type": "stop",                                                                   "stopwords": [ "the", "a" ]                                                                  }                                  },  "analyzer": { //自定义的分析器 "my_analyzer": { "type": "custom", //字符过滤器 "char_filter": [ "html_strip", "&_to_and" ], //分词器 "tokenizer": "standard", //Token过滤器 "filter": [ "lowercase", "my_stopwords" ] }}      }    } } 应用分析器: PUT /my_index/_mapping/my_type  { "properties": { "title": { "type": "string", "analyzer": "my_analyzer" } } } 映射:让elasticsearch知道索引的据类型 基本类型: 字符串: string 整数 : byte, short, integer, long 浮点数: float, double 布尔型: boolean 日期: date 查看映射:GET /gb/_mapping/tweet      取得索引 gb 中类型 tweet 的映射 域最重要的属性是 type 。对于不是 string 的域,你一般只需要设置 type; string 域映射的两个最重要 属性是 index 和 analyzer index: analyzed 首先分析字符串,然后索引它。换句话说,以全文索引这个域。 not_analyzed   索引这个域,所以它能够被搜索,但索引的是精确值。不会对它进行分析。 no 不索引这个域。这个域不会被搜索到 analyzer:指定在搜索和索引时使用的分析器,可以使用内置的分析器或者自定义的分析器 自定义映射: PUT /gb { "mappings": {                        "tweet" : {                                       "properties" : {                                                               "tweet" : { "type" : "string", "analyzer": "english" },                                                               "date" : { "type" : "date" },                                                               "name" : { "type" : "string" },                                                               "user_id" : { "type" : "long" }                                                              }                                     }                      }  } 二、索引别名和零宕机 A.PUT /my_index_v1 B.PUT /my_index_v1/_alias/my_index A创建索引,B建立别名 修改索引字段时,可以新建索引,然后将就索引数据导入新建索引,将别名指向新建索引即可实现 0宕机变更索引了 参考官方文档:https://www.elastic.co/guide/c ... iases  

failed to find analyzer type [mmseg_maxword] or tokenizer

Elasticsearchzplzpl 回复了问题 • 5 人关注 • 4 个回复 • 4368 次浏览 • 2016-06-27 17:03 • 来自相关话题

elasticsearch.yml 定义的分析器 failed to find analyzer

回复

Elasticsearchzplzpl 回复了问题 • 1 人关注 • 1 个回复 • 2823 次浏览 • 2016-06-27 16:47 • 来自相关话题

es 5.4.2 在已有索引上自定义词性分析器,必须要先关掉索引吗,能不关掉索引的情况下,新增自定义分析器吗

回复

Elasticsearchzyb1994111 回复了问题 • 3 人关注 • 2 个回复 • 126 次浏览 • 2018-09-26 16:08 • 来自相关话题

用户名如何建立分析器

回复

Elasticsearchqw8613243 回复了问题 • 3 人关注 • 3 个回复 • 200 次浏览 • 2018-08-01 23:42 • 来自相关话题

有没有可以实现“zhang”分词之后形成‘z’'h''a'...的分析器?

回复

Elasticsearchjlhde123 回复了问题 • 2 人关注 • 1 个回复 • 307 次浏览 • 2018-04-10 16:25 • 来自相关话题

failed to find analyzer type [mmseg_maxword] or tokenizer

回复

Elasticsearchzplzpl 回复了问题 • 5 人关注 • 4 个回复 • 4368 次浏览 • 2016-06-27 17:03 • 来自相关话题

elasticsearch.yml 定义的分析器 failed to find analyzer

回复

Elasticsearchzplzpl 回复了问题 • 1 人关注 • 1 个回复 • 2823 次浏览 • 2016-06-27 16:47 • 来自相关话题

索引映射与分析整理

Elasticsearchjhonbo 发表了文章 • 1 个评论 • 450 次浏览 • 2018-02-01 17:29 • 来自相关话题

索引相关 一、映射与分析 Elasticsearch 中的数据可以概括的分为两类:精确值和全文。 为了促进在全文域中的匹配查询,Elasticsearch 首先 分析 文档,之后根据结果创建 倒排索引; 倒排索引:倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包 括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来 确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文 件,简称倒排文件(inverted file)。 分析器:字符过滤器 首先,字符串按顺序通过每个 字符过滤器 。他们的任务是在分词前整理字符串。 一个字符过滤器可以用来去掉HTML,或者将 & 转化成 `and`。 分词器: 其次,字符串被 分词器 分为单个的词条。一个简单的分词器遇到空格和标点的时 候,可能会将文本拆分成词条。 Token 过滤器: 最后,词条按顺序通过每个 token 过滤器 。这个过程可能会改变词条(例如,小 写化 Quick ),删除词条(例如, 像 a`, `and`, `the 等无用词),或者增加 词条(例如,像 jump 和 leap 这种同义词) 当我们 索引 一个文档时使用分析器,它的全文域被分析成词条以用来创建倒排索引当你查询一个 全文 域时, 会对查询字符串应用相同的分析器,以产生正确的搜索词条列表。 当你查询一个 精确值 域时,不会分析查询字符串, 而是搜索你指定的精确值。 elastic内置的分析器:standard,whitespace,simple,english 创建一个自定义分析器编辑: PUT /my_index { "settings": { //配置自定义的分析器  "analysis": { "char_filter": {                                            "&_to_and": {                                                                 "type": "mapping",                                                                 "mappings": [ "&=> and "]                                                                }                                          },                     "filter": {                                     "my_stopwords": {                                                                   "type": "stop",                                                                   "stopwords": [ "the", "a" ]                                                                  }                                  },  "analyzer": { //自定义的分析器 "my_analyzer": { "type": "custom", //字符过滤器 "char_filter": [ "html_strip", "&_to_and" ], //分词器 "tokenizer": "standard", //Token过滤器 "filter": [ "lowercase", "my_stopwords" ] }}      }    } } 应用分析器: PUT /my_index/_mapping/my_type  { "properties": { "title": { "type": "string", "analyzer": "my_analyzer" } } } 映射:让elasticsearch知道索引的据类型 基本类型: 字符串: string 整数 : byte, short, integer, long 浮点数: float, double 布尔型: boolean 日期: date 查看映射:GET /gb/_mapping/tweet      取得索引 gb 中类型 tweet 的映射 域最重要的属性是 type 。对于不是 string 的域,你一般只需要设置 type; string 域映射的两个最重要 属性是 index 和 analyzer index: analyzed 首先分析字符串,然后索引它。换句话说,以全文索引这个域。 not_analyzed   索引这个域,所以它能够被搜索,但索引的是精确值。不会对它进行分析。 no 不索引这个域。这个域不会被搜索到 analyzer:指定在搜索和索引时使用的分析器,可以使用内置的分析器或者自定义的分析器 自定义映射: PUT /gb { "mappings": {                        "tweet" : {                                       "properties" : {                                                               "tweet" : { "type" : "string", "analyzer": "english" },                                                               "date" : { "type" : "date" },                                                               "name" : { "type" : "string" },                                                               "user_id" : { "type" : "long" }                                                              }                                     }                      }  } 二、索引别名和零宕机 A.PUT /my_index_v1 B.PUT /my_index_v1/_alias/my_index A创建索引,B建立别名 修改索引字段时,可以新建索引,然后将就索引数据导入新建索引,将别名指向新建索引即可实现 0宕机变更索引了 参考官方文档:https://www.elastic.co/guide/c ... iases