省略词语标记过滤器
编辑省略词语标记过滤器
编辑从标记的开头删除指定的省略词语。例如,您可以使用此过滤器将 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 } } } } }