当前位置: 首页 > 面试题库 >

Elasticsearch“ pattern_replace”,在分析时替换空格

华凡
2023-03-14
问题内容

基本上,我想删除所有空格并将整个字符串标记为单个标记。(稍后我将在其上使用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”,而不是一个“
belezanahtml" target="_blank">web”。


问题答案:

分析器首先对字符串进行标记处理,然后应用一系列标记过滤器来分析字符串。您已将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"
      }
    }
  }
}


 类似资料:
  • 问题内容: 我正在为我的Ruby on Rails应用程序使用elasticsearch。我想用char_filter用whitepace替换一些字符。 在elasticsearch教程中,它表示如下内容: 我尝试了以下方法: 但是,它似乎不起作用。有想法吗? 问题答案: 您可以使用\ uXXXX表示法来表示空格:

  • 主要内容:分析器,令牌器/标记生成器,令牌过滤器,字符过滤器当在搜索操作期间处理查询时,任何索引中的内容由分析模块分析。该模块由分析器,分词器,分词器过滤器和字符过滤器组成。 如果没有定义分析器,则默认情况下注册内置的分析器,分词器,分词器过滤器和字符过滤器到分析模块。例如。 请求正文 响应 分析器 分析器由令牌器和可选的令牌过滤器组成。这些分析器在具有逻辑名的分析模块中注册,可以在映射定义或某些API中引用它们。有许多默认分析仪如下 - 编号 分析器 描

  • 本文向大家介绍Java 替换空格,包括了Java 替换空格的使用技巧和注意事项,需要的朋友参考一下 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 以下是java.lang.StringBuilder.replace()方法的声明 public StringBuilder replace(i

  • 题目链接 牛客网 题目描述 将一个字符串中的空格替换成 "%20"。 // text Input: "A B" Output: "A%20B" 解题思路 ① 在字符串尾部填充任意字符,使得字符串的长度等于替换之后的长度。因为一个空格要替换成三个字符(%20),所以当遍历到一个空格时,需要在尾部填充两个任意字符。 ② 令 P1 指向字符串原来的末尾位置,P2 指向字符串现在的末尾位置。P1 和

  • 一、题目 请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.”,则输出“We%20are%20happy.”。 二、解题思路 先判断字符串中空格的数量。根据数量判断该字符串有没有足够的空间替换成"%20"。 如果有足够空间,计算出需要的空间。根据最终需要的总空间,维护一个指针在最后。从后到前,遇到非空的就把该值挪到指针指向的位置,然后指针向前一位,遇到“ ”,则

  • 问题内容: 我正在使用Elasticsearch 1.7.3累积用于分析报告的数据。 我有一个包含文档的索引,其中每个文档都有一个名为“ duration”的数字字段(请求花费了几毫秒)和一个名为“ component”的字符串字段。可能有许多具有相同组件名称的文档。 例如。 我想生成一份报告,说明每个组件: 此组件的所有“持续时间”字段的总和。 此总和在 所有 文档的总期限中所占的百分比。在我的