Py学习  »  Elasticsearch

999 - Elasticsearch Analysis 05 - Character Filter

歌哥 • 4 年前 • 272 次点击  
阅读 2

999 - Elasticsearch Analysis 05 - Character Filter

HTML Strip Character Filter

  • 将html元素替换成对应的解码值(例如&替换成&)。
  • 示例
POST _analyze
{
  "char_filter": [
    "html_strip"
    ],
  "tokenizer": "keyword", 
  "text": "<p>I&apos;m so <b>happy</b>!</p>"
}
复制代码

产生


I'm so happy!

复制代码

keyword换成standard产生[ I'm, so, happy ]

  • 配置参数
参数 说明
escaped_tags 会被保留的HTML元素

示例

POST _analyze
{
    "char_filter": [
       {
         "type": "html_strip",
         "escaped_tags":["b"]
       }
      ],
    "tokenizer": "keyword", 
    "text": "<p>I&apos;m so <b>happy</b>!</p>"
}
复制代码

产生


I'm so <b>happy</b>!

复制代码

Mapping Character Filter

  • 定义一堆键值对,匹配到键就替换成值。
  • 配置参数
参数 说明
mappings 键值对数组,格式为key => value
mappings_path 键值对文件路径。相对于config或绝对路径。
UTF-8编码。
每行一个键值对,格式为key => value

示例

POST _analyze
{
  "char_filter": [
    {
      "type": "mapping",
      "mappings": [
          "٠ => 0",
          "١ => 1",
          "٢ => 2",
          "٣ => 3",
          "٤ => 4",
          "٥ => 5",
          "٦ => 6",
          "٧ => 7",
          "٨ => 8",
          "٩ => 9"
      ]
    }
  ], 
  "tokenizer": "keyword",
  "text": "My license plate is ٢٥٠١٥"
}
复制代码

产生[ My license plate is 25015 ]

上一个例子是单字符的替换,也可以多字符。

POST _analyze
{
  "char_filter": [
    {
      "type": "mapping",
      "mappings": [
        ":) => _happy_",
        ":( => _sad_"
      ]
    }
  ], 
  "tokenizer": "keyword",
  "text": "I'm delighted about it :("
}
复制代码

产生[ I'm delighted about it _sad_ ]

Pattern Replace Character Filter

  • 使用正则表达式去替换。替换文本可以引用捕获组中的内容。
  • 配置参数
参数 说明
pattern Java正则表达式。必须。
replacement 替换文本。可以使用$1..$9这样的语法,引用捕获组中的值。
flags Java正则表达式flags,多个用|分离,例如"CASE_INSENSITIVE | COMMENTS"。

示例

POST _analyze
{
  "char_filter": [
    {
      "type": "pattern_replace",
      "pattern": "(\\d+)-(?=\\d)",
      "replacement": "$1_"
    }
  ],
  "tokenizer": "keyword",
  "text": "My credit card is 123-456-789"
}
复制代码

产生[ My credit card is 123_456_789 ]

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46606
 
272 次点击