Elasticsearch“ pattern_replace”,在分析时替换空格
基本上,我想删除所有空格并将整个字符串标记为单个标记。(稍后我将在其上使用nGram。)
这是我的索引设置:
"settings": { "index": {
"analysis": {
"filter": {
"whitespace_remove": {
"type": "pattern_replace",
"pattern": " ",
"replacement": ""
}
},
"analyzer": {
"meliuz_analyzer": {
"filter": [
"lowercase",
"whitespace_remove"
],
"type": "custom",
"tokenizer": "standard"
}
}
}
}
"pattern": " "
我尝试使用"pattern": "\\u0020"
和来代替\\s
。
但是,当我分析文本“ beleza na web”时,它仍然创建三个单独的标记:“ beleza”,“ na”和“ web”,而不是一个“
belezanaweb”。
回答:
分析器首先对字符串进行标记处理,然后应用一系列标记过滤器来分析字符串。您已将tokenizer指定为标准,这意味着已使用标准的tokenizer对输入进行了令牌化,后者分别创建了token。然后将模式替换过滤器应用于令牌。
使用关键字标记器代替标准标记器。其余的映射就可以了。您可以如下更改映射
"settings": { "index": {
"analysis": {
"filter": {
"whitespace_remove": {
"type": "pattern_replace",
"pattern": " ",
"replacement": ""
}
},
"analyzer": {
"meliuz_analyzer": {
"filter": [
"lowercase",
"whitespace_remove",
"nGram"
],
"type": "custom",
"tokenizer": "keyword"
}
}
}
}
以上是 Elasticsearch“ pattern_replace”,在分析时替换空格 的全部内容, 来源链接: utcz.com/qa/431692.html