【问题标题】:Elasticsearch "keep_types" filter doesn't work with "pattern" tokenizerElasticsearch“keep_types”过滤器不适用于“模式”标记器
【发布时间】:2020-06-04 13:09:53
【问题描述】:

我在使用带有“模式”标记器的“keep_types”过滤器时遇到问题,这是一个示例:

    {
        "tokenizer": {
            "type": "pattern",
            "pattern": "[()., _-]"
        },
        "filter": [
            "lowercase",
            "asciifolding",
            {
                "type": "keep_types",
                "types": [
                    "<ALPHANUM>"
                ]
            }
        ],
        "text": [
            "7002982065_8031949292_Bomba (Vácuo,pressão) - Suryha.pdf"
        ]
    }

针对 _analyze API 的结果是:

  {
    "tokens": []
  }

如果我删除 keep_types,它会按预期工作。

我还注意到,如果我使用“标准”分析器,它可以正常工作,但在这种情况下,它不会以所需的方式标记文本。

我使用的是 6.8 版本,但也在 7.5 中尝试过,结果相同...

有什么想法吗?

【问题讨论】:

    标签: elasticsearch elasticsearch-analyzers


    【解决方案1】:

    我能够使用“字母”标记器获得预期结果,它无需过滤器即可删除数字和引号。

    {
        "tokenizer": {
            "type": "letter"
        },
        "filter": [
            "lowercase",
            "asciifolding"
        ],
        "text": [
            "7002982065_8031949292_Bomba (\"Vácuo,pressão) - Suryha.pdf"
        ]
    }
    

    结果是

    [
      "bomba",
      "vacuo",
      "pressao",
      "suryha",
      "pdf"
    ]
    

    但我仍然认为值得回答主要问题,所以我会保持开放

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 2020-02-06
      相关资源
      最近更新 更多