当前位置: 首页 > 知识库问答 >
问题:

Elasticsearch“keep\u types”过滤器不适用于“pattern”标记器

艾望
2023-03-14

我在使用带有“模式”标记器的“keep\u 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版本中也尝试了相同的结果。。。

有什么想法吗?

共有1个答案

冯霖
2023-03-14

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

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

结果是

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

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

 类似资料:
  • 我试图理解Hibernate过滤器,我认为即使查询不是从过滤的实体开始,也可以应用过滤器,如果我只是加入它。 我的实体: 过滤器通过拦截器启用,为了安全起见,从数据库中获取参数列表。 当我执行这样的查询时: 过滤器被应用了。但是我也希望当我的查询从模块部分开始时应用过滤器: 在上述查询中,没有应用筛选器。 ModuleSect实体中的学术类为null,但我也有其他实体不为空,其中上述情况不起作用。

  • 问题内容: 我在elasticsearch中拥有大型文档存储,并希望检索不同的过滤器值以显示在HTML下拉列表中。 一个例子是像 下拉列表应包含部门列表,即IT,客户和管理部门。 请问有什么好心的人向我指出正确的方向,以便从Elasticsearch检索不同的部门列表吗? 谢谢 问题答案: 这是聚合(文档)的工作。 您可以使用以下不同的值: 在您的示例中,输出: 另外两个注意事项: 设置为0会将最

  • 问题内容: “过滤后的查询和过滤器”与“根查询和过滤器”之间有什么区别吗?例如 情况1: 情况2: 我在http://elasticsearch-users.115913.n3.nabble.com/Filtered-query-vs-using- filter-outside-td3960119.html中 找到了此讨论,但所引用的URL是404,并且解释过于简洁我。 请示教或提供指出这些区别的

  • 问题内容: 我正在使用日志记录()记录消息。 在1个单一模块中,我正在调试级别记录消息; 其中一些调试消息来自于其他消息; 我希望能够基于它们是来自a还是来自b来启用/禁用日志记录; 我猜想我必须使用日志记录的过滤机制。 有人可以告诉我下面的代码如何被执行我想要的工作吗? 如果将这个简单的示例扩展到更多模块和每个模块更多的功能,我会担心很多记录器; 是否可以将每个模块的记录器数量限制为1个?请注意

  • 在弹性搜索中,此过滤器 正确返回标题中带有“Google”的文章。 然而, 不返回任何结果,尽管事实上有些文章的标题中有“Google Earth”的确切字样。我希望它这样做。 完整查询: FWIW,我在“filter”字段中有此条件的原因是(与使用标准查询相反),有时我希望使用“must_not”而不是“must_not”,有时我还向查询添加其他元素。