谓词词元过滤器 #
谓词词元过滤器(predicate_token_filter
)会根据自定义脚本中定义的条件来评估词元是应该保留还是丢弃。词元的评估是在分析谓词上下文中进行的。此过滤器仅支持内联 Painless 脚本。
参数说明 #
谓词词元过滤器有一个必需参数:script
。该参数提供一个条件,用于评估词元是否应被保留。
参考样例 #
以下示例请求创建了一个名为 predicate_index
的新索引,并配置了一个带有谓词词元过滤器的分词器。该过滤器指定仅输出长度超过 7 个字符的词元。
PUT /predicate_index
{
"settings": {
"analysis": {
"filter": {
"my_predicate_filter": {
"type": "predicate_token_filter",
"script": {
"source": "token.term.length() > 7"
}
}
},
"analyzer": {
"predicate_analyzer": {
"tokenizer": "standard",
"filter": [
"lowercase",
"my_predicate_filter"
]
}
}
}
}
}
产生的词元 #
使用以下请求来检查使用该分词器生成的词元:
POST /predicate_index/_analyze
{
"text": "The Easysearch community is growing rapidly",
"analyzer": "predicate_analyzer"
}
返回内容包含产生的词元
{
"tokens": [
{
"token": "easysearch",
"start_offset": 4,
"end_offset": 14,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "community",
"start_offset": 15,
"end_offset": 24,
"type": "<ALPHANUM>",
"position": 2
}
]
}