【问题标题】:Mapping analyser for splitting string in Elastic search用于在弹性搜索中拆分字符串的映射分析器
【发布时间】:2017-01-09 04:49:08
【问题描述】:

是否可以创建一个映射分析器,根据字符数将字符串拆分为更小的部分?

例如,假设我有一个字符串:“ABCD1E2F34”。这是由多个较小的代码构成的一些令牌,我想再次将其分解为这些代码。

如果我确定: - 第一个代码总是 4 个字母(“ABCD”) - 第二个是 3 个字母(“1E2”) - 第三个是 1 个字母(“F”) - 第四个是2个字母(“34”)

我可以为一个字段创建一个映射分析器来映射这样的字符串吗?如果我将字段“bigCode”设置为值“ABCD1E2F34”,我将能够像这样访问它:

bigCode.full ("ABCD1E2F34")
bigCode.first ("ABCD")
bigCode.second ("1E2")
... 

非常感谢!

【问题讨论】:

    标签: elasticsearch elasticsearch-mapping


    【解决方案1】:

    您如何看待模式标记器?我创建了一个正则表达式来将字符串拆分为(?<=(^\\w{4}))|(?<=^\\w{4}(\\w{3}))|(?<=^\\w{4}\\w{3}(\\w{1}))|(?<=^\\w{4}\\w{3}\\w{1}(\\w{2})) 的标记。之后我创建了一个这样的分析器:

    PUT /myindex
    {
        "settings": {
            "analysis": {
              "analyzer": {
                "codeanalyzer": {
                  "type": "pattern",
                  "pattern":"(?<=(^\\w{4}))|(?<=^\\w{4}(\\w{3}))|(?<=^\\w{4}\\w{3}(\\w{1}))|(?<=^\\w{4}\\w{3}\\w{1}(\\w{2}))"
                }
              }
            }
        }
    }
    
    POST /myindex/_analyze?analyzer=codeanalyzer&text=ABCD1E2F34
    

    结果是标记化的数据:

    {
      "tokens": [
        {
          "token": "abcd",
          "start_offset": 0,
          "end_offset": 4,
          "type": "word",
          "position": 0
        },
        {
          "token": "1e2",
          "start_offset": 4,
          "end_offset": 7,
          "type": "word",
          "position": 1
        },
        {
          "token": "f",
          "start_offset": 7,
          "end_offset": 8,
          "type": "word",
          "position": 2
        },
        {
          "token": "34",
          "start_offset": 8,
          "end_offset": 10,
          "type": "word",
          "position": 3
        }
      ]
    }
    

    您也可以查看文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-pattern-tokenizer.html

    【讨论】:

      猜你喜欢
      • 2016-05-20
      • 2021-06-28
      • 1970-01-01
      • 2016-10-14
      • 2014-06-06
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      相关资源
      最近更新 更多