首页 文章

分析字段中的所有大写标记

提问于
浏览
0

我想以两种方式分析文本字段的值 . 使用标准分析和自定义分析,仅对文本中的所有大写标记编制索引 .

例如,如果值为"This WHITE cat is very CUTE.",则应为自定义分析编制索引的唯一标记为"WHITE"和"CUTE" . 为此,我使用Pattern Capture Token Filter与模式"(\b[A-Z]+\b)+?" . 但这是索引所有令牌而不仅仅是大写令牌 .

模式捕获令牌过滤器是否适合用于此任务?如果是的话,我做错了什么?如果没有,我该如何完成?请帮忙 .

1 回答

  • 0

    您应该使用pattern_replace和char_filter:

    PUT test
    {
      "settings": {
        "analysis": {
          "char_filter": {
            "filter_lowercase": {
              "type": "pattern_replace",
              "pattern": "[A-Z][a-z]+|[a-z]+",
              "replacement": ""
            }
          },
          "analyzer": {
            "my_analyzer": {
              "tokenizer": "standard",
              "char_filter": [
                "filter_lowercase"
              ]
            }
          }
        }
      }
    }
    
    GET test/_analyze
    {"analyzer": "my_analyzer", 
      "text" : "This WHITE cat is very CUTE"
    }
    

相关问题