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

时间:2017-03-23 15:44:06

标签: elasticsearch elasticsearch-5

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

例如,如果值为"此白猫非常可爱。",应该为自定义分析编制索引的唯一标记是" WHITE"和" CUTE"。为此,我使用Pattern Capture Token Filter模式"(\ b [A-Z] + \ b)+?"。但这是索引所有令牌而不仅仅是大写令牌。

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

1 个答案:

答案 0 :(得分: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"
}