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

回到顶部