elasticsearch - Elasticsearch,仅索引第一个和最后一个字母,'abc'=> 'a''c'

elasticsearch - Elasticsearch,仅索引第一个和最后一个字母,'abc'=> 'a''c',第1张

我只想索引第一个和最后一个字母。

例如

'abc'将被编入索引为'a'和'c'

我该如何处理?

最佳答案:

1 个答案:

答案 0 :(得分:0)

模式分析器是一种选择。例如:

{
  "settings": {
    "analysis": {
      "analyzer": {
        "firstAndLast": {
          "type": "pattern",
          "pattern": "(?<=^.).*(?=.$)" 
        }
      }
    }
  }
}

此模式将从以下输入生成以下标记:

abc =&gt; a c

abc def =&gt; a f

编辑: 如果您想为每个单词生成第一个和最后一个单词,则必须按如下方式定义自定义分析器:

{
  "settings": {
    "analysis": {
      "filter": {
        "regexpFilter": {
          "type": "pattern_capture",
          "preserve_original": "false",
          "patterns": [
            "(^\w)|(\w$)"
          ]
        }
      },
      "analyzer": {
        "test": {
          "filter": [
            "regexpFilter"
          ],
          "tokenizer": "whitespace"
        }
      }
    }
  }
}
本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复