使用带有自定义规范化器的反向令牌

时间:2018-01-09 22:01:22

标签: elasticsearch

显然,当我尝试运行以下映射

 "normalizer": {
        "my_normalizer": {
          "type": "custom",
          "char_filter": [],
          "filter": [
            "lowercase"
          ]
        },
        "my_reverse_normalizer": {
          "type": "custom",
          "char_filter": [],
          "filter": [
            "lowercase",
            "reverse"
          ]
        }
      }

我明白了:

Custom normalizer [my_reverse_normalizer] may not use filter [reverse]

我可以申请哪些解决方法?我需要将关键字规范化,并且能够使用后缀查询以及为什么我计划使用反向标记化。

1 个答案:

答案 0 :(得分:0)

如果这不适用于规范化器,您可以随时使用keyword标记器和reverse令牌过滤器

创建一个普通的自定义分析器
  "normalizer": {
    "my_normalizer": {
      "type": "custom",
      "char_filter": [],
      "filter": [
        "lowercase"
      ]
    }
  },
  "analyzer": {
    "my_reverse_analyzer": {
      "type": "custom",
      "tokenizer": "keyword",
      "char_filter": [],
      "filter": [
        "lowercase",
        "reverse"
      ]
    }
  }

但请注意,如果您需要进行后缀搜索,则需要两个reverse过滤器。关于此主题,请参阅此我的其他similar question