Elision 标记过滤器编辑

从标记的开头删除指定的 省略。例如,您可以使用此过滤器将 l'avion 更改为 avion

未自定义时,过滤器默认删除以下法语省略:

l'm't'qu'n's'j'd'c'jusqu'quoiqu'lorsqu'puisqu'

此过滤器的自定义版本包含在 Elasticsearch 的几个内置 语言分析器

此过滤器使用 Lucene 的 ElisionFilter

示例编辑

以下 分析 API 请求使用 elision 过滤器从 j’examine près du wharf 中删除 j'

response = client.indices.analyze(
  body: {
    tokenizer: 'standard',
    filter: [
      'elision'
    ],
    text: 'j’examine près du wharf'
  }
)
puts response
GET _analyze
{
  "tokenizer" : "standard",
  "filter" : ["elision"],
  "text" : "j’examine près du wharf"
}

该过滤器生成以下标记

[ examine, près, du, wharf ]

添加到分析器编辑

以下 创建索引 API 请求使用 elision 过滤器配置新的 自定义分析器

response = client.indices.create(
  index: 'elision_example',
  body: {
    settings: {
      analysis: {
        analyzer: {
          whitespace_elision: {
            tokenizer: 'whitespace',
            filter: [
              'elision'
            ]
          }
        }
      }
    }
  }
)
puts response
PUT /elision_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "whitespace_elision": {
          "tokenizer": "whitespace",
          "filter": [ "elision" ]
        }
      }
    }
  }
}

可配置参数编辑

articles

(必填*,字符串数组)要删除的省略列表。

要删除省略,省略必须位于标记的开头,并且紧跟其后的是撇号。省略和撇号都将被删除。

对于自定义 elision 过滤器,必须指定 articles 参数或 articles_path 参数。

articles_path

(必填*,字符串)包含要删除的省略列表的文件的路径。

此路径必须是绝对路径或相对于 config 位置的路径,并且文件必须采用 UTF-8 编码。文件中的每个省略都必须用换行符分隔。

要删除省略,省略必须位于标记的开头,并且紧跟其后的是撇号。省略和撇号都将被删除。

对于自定义 elision 过滤器,必须指定 articles_path 参数或 articles 参数。

articles_case
(可选,布尔值)如果为 true,则省略匹配不区分大小写。如果为 false,则省略匹配区分大小写。默认为 false

自定义编辑

要自定义 elision 过滤器,请复制它以创建新的自定义标记过滤器的基础。您可以使用其可配置参数修改过滤器。

例如,以下请求创建一个不区分大小写的自定义 elision 过滤器,该过滤器删除 l'm't'qu'n's'j' 省略

response = client.indices.create(
  index: 'elision_case_insensitive_example',
  body: {
    settings: {
      analysis: {
        analyzer: {
          default: {
            tokenizer: 'whitespace',
            filter: [
              'elision_case_insensitive'
            ]
          }
        },
        filter: {
          elision_case_insensitive: {
            type: 'elision',
            articles: [
              'l',
              'm',
              't',
              'qu',
              'n',
              's',
              'j'
            ],
            articles_case: true
          }
        }
      }
    }
  }
)
puts response
PUT /elision_case_insensitive_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "default": {
          "tokenizer": "whitespace",
          "filter": [ "elision_case_insensitive" ]
        }
      },
      "filter": {
        "elision_case_insensitive": {
          "type": "elision",
          "articles": [ "l", "m", "t", "qu", "n", "s", "j" ],
          "articles_case": true
        }
      }
    }
  }
}