我想以两种方式分析文本字段的值。使用标准分析和自定义分析,仅对文本中的所有大写标记编制索引。
例如,如果值为"此白猫非常可爱。",应该为自定义分析编制索引的唯一标记是" WHITE"和" CUTE"。为此,我使用Pattern Capture Token Filter模式"(\ b [A-Z] + \ b)+?"。但这是索引所有令牌而不仅仅是大写令牌。
模式捕获令牌过滤器是否适用于此任务?如果是的话,我做错了什么?如果没有,我该如何完成?请帮忙。
答案 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"
}