Elasticsearch,仅索引第一个和最后一个字母,'abc' => 'a' 'c'
Elasticsearch, index first and last letter only, 'abc' => 'a' 'c'
我只想索引第一个和最后一个字母。
例如
'abc' 将被索引为 'a' 和 'c'
我该如何处理?
模式分析器是一个选项。示例:
{
"settings": {
"analysis": {
"analyzer": {
"firstAndLast": {
"type": "pattern",
"pattern": "(?<=^.).*(?=.$)"
}
}
}
}
}
此模式将从以下输入中生成以下标记:
abc
=> a
c
abc def
=> a
f
编辑:
如果您想为每个单词生成 first 和 last,您必须按如下方式定义自定义分析器:
{
"settings": {
"analysis": {
"filter": {
"regexpFilter": {
"type": "pattern_capture",
"preserve_original": "false",
"patterns": [
"(^\w)|(\w$)"
]
}
},
"analyzer": {
"test": {
"filter": [
"regexpFilter"
],
"tokenizer": "whitespace"
}
}
}
}
}
我只想索引第一个和最后一个字母。
例如
'abc' 将被索引为 'a' 和 'c'
我该如何处理?
模式分析器是一个选项。示例:
{
"settings": {
"analysis": {
"analyzer": {
"firstAndLast": {
"type": "pattern",
"pattern": "(?<=^.).*(?=.$)"
}
}
}
}
}
此模式将从以下输入中生成以下标记:
abc
=> a
c
abc def
=> a
f
编辑: 如果您想为每个单词生成 first 和 last,您必须按如下方式定义自定义分析器:
{
"settings": {
"analysis": {
"filter": {
"regexpFilter": {
"type": "pattern_capture",
"preserve_original": "false",
"patterns": [
"(^\w)|(\w$)"
]
}
},
"analyzer": {
"test": {
"filter": [
"regexpFilter"
],
"tokenizer": "whitespace"
}
}
}
}
}