省略标记过滤器
编辑省略标记过滤器
编辑从标记的开头删除指定的省略。例如,您可以使用此过滤器将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'
resp = client.indices.analyze( tokenizer="standard", filter=[ "elision" ], text="j’examine près du wharf", ) print(resp)
response = client.indices.analyze( body: { tokenizer: 'standard', filter: [ 'elision' ], text: 'j’examine près du wharf' } ) puts response
const response = await client.indices.analyze({ tokenizer: "standard", filter: ["elision"], text: "j’examine près du wharf", }); console.log(response);
GET _analyze { "tokenizer" : "standard", "filter" : ["elision"], "text" : "j’examine près du wharf" }
过滤器生成以下标记
[ examine, près, du, wharf ]
添加到分析器
编辑以下创建索引 API请求使用elision
过滤器配置新的自定义分析器。
resp = client.indices.create( index="elision_example", settings={ "analysis": { "analyzer": { "whitespace_elision": { "tokenizer": "whitespace", "filter": [ "elision" ] } } } }, ) print(resp)
response = client.indices.create( index: 'elision_example', body: { settings: { analysis: { analyzer: { whitespace_elision: { tokenizer: 'whitespace', filter: [ 'elision' ] } } } } } ) puts response
const response = await client.indices.create({ index: "elision_example", settings: { analysis: { analyzer: { whitespace_elision: { tokenizer: "whitespace", filter: ["elision"], }, }, }, }, }); console.log(response);
PUT /elision_example { "settings": { "analysis": { "analyzer": { "whitespace_elision": { "tokenizer": "whitespace", "filter": [ "elision" ] } } } } }
可配置参数
编辑-
articles
-
(必填*,字符串数组) 要删除的省略列表。
要删除,省略必须位于标记的开头,并且紧跟在撇号之后。省略和撇号都会被删除。
对于自定义
elision
过滤器,必须指定此参数或articles_path
。 -
articles_path
-
(必填*,字符串) 包含要删除的省略列表的文件路径。
此路径必须是相对于
config
位置的绝对路径或相对路径,并且文件必须为 UTF-8 编码。文件中每个省略都必须用换行符分隔。要删除,省略必须位于标记的开头,并且紧跟在撇号之后。省略和撇号都会被删除。
对于自定义
elision
过滤器,必须指定此参数或articles
。 -
articles_case
- (可选,布尔值) 如果为
true
,则省略匹配不区分大小写。如果为false
,则省略匹配区分大小写。默认为false
。
自定义
编辑要自定义elision
过滤器,请将其复制以创建新自定义标记过滤器的基础。您可以使用其可配置参数修改过滤器。
例如,以下请求创建一个不区分大小写的自定义elision
过滤器,该过滤器删除l'
、m'
、t'
、qu'
、n'
、s'
和j'
省略
resp = client.indices.create( index="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 } } } }, ) print(resp)
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
const response = await client.indices.create({ index: "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, }, }, }, }, }); console.log(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 } } } } }