• ElasticSearch之分词器edge_ngram和ngram的区别


    ElasticSearch一看就懂之分词器edge_ngram和ngram的区别
    1 year ago
    edge_ngram和ngram是ElasticSearch自带的两个分词器,一般设置索引映射的时候都会用到,设置完步长之后,就可以直接给解析器analyzer的tokenizer赋值使用。
    这里,我们统一用字符串来做分词示例:
    字符串

    1. edge_ngram分词器,分词结果如下:
      {
      "tokens": [
      {
      "token": "字",
      "start_offset": 0,
      "end_offset": 1,
      "type": "word",
      "position": 0
      },
      {
      "token": "字符",
      "start_offset": 0,
      "end_offset": 2,
      "type": "word",
      "position": 1
      },
      {
      "token": "字符串",
      "start_offset": 0,
      "end_offset": 3,
      "type": "word",
      "position": 2
      }
      ]
      }
    2. ngram分词器,分词结果如下:
      {
      "tokens": [
      {
      "token": "字",
      "start_offset": 0,
      "end_offset": 1,
      "type": "word",
      "position": 0
      },
      {
      "token": "字符",
      "start_offset": 0,
      "end_offset": 2,
      "type": "word",
      "position": 1
      },
      {
      "token": "字符串",
      "start_offset": 0,
      "end_offset": 3,
      "type": "word",
      "position": 2
      },
      {
      "token": "符",
      "start_offset": 1,
      "end_offset": 2,
      "type": "word",
      "position": 3
      },
      {
      "token": "符串",
      "start_offset": 1,
      "end_offset": 3,
      "type": "word",
      "position": 4
      },
      {
      "token": "串",
      "start_offset": 2,
      "end_offset": 3,
      "type": "word",
      "position": 5
      }
      ]
      }
      一目了然,看明白了吗?简单理解来说:edge_ngram的分词器,就是从首字开始,按步长,逐字符分词,直至最终结尾文字;ngram呢,就不仅是从首字开始,而是逐字开始按步长,逐字符分词。
      具体应用呢?如果必须首字匹配的情况,那么用edge_ngram自然是最佳选择,如果需要文中任意字符的匹配,ngram就更为合适了。
  • 相关阅读:
    bzoj1477: 青蛙的约会
    数论/the second wave
    bzoj2818: Gcd
    bzoj2705: [SDOI2012]Longge的问题
    数论/the first wave
    bzoj3942: [Usaco2015 Feb]Censoring
    BZOJ 1059: [ZJOI2007]矩阵游戏( 匈牙利 )
    BZOJ 1013: [JSOI2008]球形空间产生器sphere( 高斯消元 )
    BZOJ 1823: [JSOI2010]满汉全席( 2-sat )
    BZOJ 4260: Codechef REBXOR( trie )
  • 原文地址:https://www.cnblogs.com/frankltf/p/13986940.html
Copyright © 2020-2023  润新知