【问题标题】:Elasticsearch custom analyserElasticsearch 自定义分析器
【发布时间】:2019-05-27 00:40:45
【问题描述】:

是否可以创建自定义的弹性搜索分析器,它可以按空间分割索引,然后创建两个令牌?一是空间之前的一切,二是一切。 例如:我已经存储了具有以下文本的字段的记录:'35 G'。 现在我想通过在该字段中仅输入“35”或“35 G”查询来接收该记录。 所以弹性应该创建两个标记:['35', '35 G'] 等等。

如果可以,如何实现?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    可以使用path_hierarchy tokenizer

    PUT test
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "my_analyzer": {
              "tokenizer": "my_tokenizer"
            }
          },
          "tokenizer": {
            "my_tokenizer": {
              "type": "path_hierarchy",
              "delimiter": " "
            }
          }
        }
      }
      ...
    }
    

    现在

    POST test/_analyze
    {
      "analyzer": "my_analyzer",
      "text": "35 G"
    }
    

    输出

    {
      "tokens": [
        {
          "token": "35",
          "start_offset": 0,
          "end_offset": 2,
          "type": "word",
          "position": 0
        },
        {
          "token": "35 G",
          "start_offset": 0,
          "end_offset": 4,
          "type": "word",
          "position": 0
        }
      ]
    }
    

    【讨论】:

      猜你喜欢
      • 2014-08-08
      • 1970-01-01
      • 2016-01-12
      • 2014-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多