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

通过关键字类型-ELASTICSEARCH 5.6上的规格化器实现类似雪球分析器的功能

公孙阳文
2023-03-14

我一直在尝试在我的一个文档字段上实现类似snowball analyzer的功能,该字段类型为关键字。例如,复数应该完全像它们的奇点一样处理,以便两者的结果相同。

最初,我努力在我的字段上设置分析器,只是为了发现关键字类型的字段不能有分析器,而是规范化器。所以,我尝试在这些字段上为雪球设置规范化器,但我的规范化器似乎不允许雪球过滤器(可能是规范化器不支持雪球过滤器)

我无法更改字段的类型。我想实现这样的功能,如果我的输入文本与餐馆匹配,它应该将其视为餐馆,并给出结果,这样我就不必将餐馆作为关键字添加到该字段中。

我们可以通过归一化器实现这一点吗?我浏览了弹性文件和各种帖子,但没有任何线索。下面是我如何尝试使用我的弹性服务器的响应设置规范化器。

把localhost:9200/db110/_settings

{
  "analysis": {
    "normalizer": {
      "snowball_normalizer": {
        "filter": ["lowercase","snowball" ]
      }
    },
    "filter" : {
        "snow" : {
            "type" : "snowball",
            "language" : "English"
        }
    }
  }

}

回答

{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "Custom normalizer [snowball_normalizer] may not use filter [snowball]"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "Custom normalizer [snowball_normalizer] may not use filter [snowball]"
    },
    "status": 400
}

共有1个答案

郎羽
2023-03-14

你不能那样做!Snowball是一个词干分析器,用于全文搜索-例如文本数据类型,因为它是一个令牌过滤器,处理每个令牌。使用关键字数据类型,您可以为字段的所有内容创建一个令牌。根据你们的说法,词干分析器如何适用于关键字字段?使用没有标记的词干分析器没有意义。关键字字段的规范化器仅为小写和asciifold。文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/normalizer.html

 类似资料:
  • 商品分类、商品规格、商品类型的关系: 商品类型不同于商品分类,指的是依据某一类商品的相同属性归纳成的属性集合,例如手机类型有屏幕尺寸、铃声、网络制式等共同的属性;书籍类型有出版社、作者、ISBN号等共同的属性。商品类型可以在简单商品基础上增加更多的展示点,让顾客能全方位、多角度的来选择商品。商品类型包括扩展属性、参数、规格等三个部分。 商品规格对产品名称中不能体现的产品参数信息的补充,一般需要含有

  • 问题内容: 能否请您帮我如何使用和一起键入,就像通过使用来演示我的方法一样 问题答案: 为了安全起见,请考虑此处所示。这将允许使用此处讨论的。 附录:即使是更一般的情况,我也会使用,如下所示。如键盘示例所示,我将使用按键绑定在组件之间共享。 附录:为了说明@kleopatra的评论,我更新了绑定到的代码。实际上,我只使用尚未绑定到文本字段操作或正常使用所需的键。

  • 我试图通过构建一个具有以下模式的服务器来熟悉Graphql: 并映射到以下数据: 在编写解析器时,我注意到很多样板代码——我必须为每个持有外键的对象成员编写概念上相同的字段解析器。 有没有办法通过ID创建类型解析器?例如,字段或查询总是由

  • 是否可以使用关键字分析器从https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-keyword-analyzer.html在搜索? 我想要在文本字段中分析特定字符串。

  • 有人能告诉我为什么这行不通吗?以及如何让它发挥作用?

  • 乍一看,这似乎并不是非常有用(即使是错误提及原始类型),但随着类型注释变得更加复杂, 关键字的好处变得明显。 联合类型允许类型注释指定属性应该是一组类型之一(两者任一)。 function admitAge (age: number|string): string { return `I am ${age}, alright?!`; } admitAge('Forty'); // 'I am