0

我在使用带有“模式”标记器的“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 中尝试了相同的结果...

有任何想法吗?

4

1 回答 1

0

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

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

结果是

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

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

于 2020-06-01T14:16:30.727 回答