欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 【Elasticsearch】Token Graphs

【Elasticsearch】Token Graphs

2025/4/19 3:29:07 来源:https://blog.csdn.net/risc123456/article/details/145606435  浏览:    关键词:【Elasticsearch】Token Graphs

Elasticsearch 的Token Graphs是一种用于处理文本分析的高级功能,主要用于处理多词同义词、短语匹配等复杂场景。以下是关于 Token Graphs 的详细解释:

1.什么是 Token Graphs

Token Graphs 是一种有向无环图(DAG),用于表示文本流中的标记(tokens)及其位置关系。在 Token Graph 中:

• 每个位置(position)表示一个节点(node)。

• 每个标记(token)表示一条边(edge),指向下一个位置。

2.标记的位置和长度

在 Token Graph 中,每个标记都有两个重要属性:

• 位置(Position):标记在流中的位置。

• 位置长度(Position Length):标记跨越的位置数量。

例如,对于短语“domain name system”,其标记图可能如下:

• `domain`的位置为 0,位置长度为 1。

• `name`的位置为 1,位置长度为 1。

• `system`的位置为 2,位置长度为 1。

如果添加了同义词`dns`,则`dns`的位置为 0,位置长度为 3。

3.多位置标记

某些标记过滤器(如`synonym_graph`和`word_delimiter_graph`)可以生成跨越多个位置的标记。例如:

• 将“automatic teller machine”替换为“atm”。

• 将“domain name system”替换为“dns”。

4.标记图的用途

索引阶段

索引阶段不支持包含多位置标记的 Token Graphs。因此,需要使用`flatten_graph`过滤器将 Token Graph 展平,使其适合索引。

搜索阶段

在搜索阶段,Token Graphs 可以用于生成多个子查询。例如,用户搜索“domain name system is fragile”,Token Graph 会生成以下子查询:

• `dns is fragile`

• `domain name system is fragile`。

5.如何生成 Token Graphs

可以通过 Elasticsearch 的分析器(Analyzer)和标记过滤器(Token Filter)生成 Token Graphs。例如:

```json

GET /_analyze

{

  "tokenizer": "standard",

  "filter": [

    {

      "type": "synonym_graph",

      "synonyms": [ "dns, domain name system" ]

    }

  ],

  "text": "domain name system is fragile"

}

```

上述请求会生成一个包含多位置标记的 Token Graph。

6.展平 Token Graphs

为了使 Token Graphs 适合索引,可以使用`flatten_graph`过滤器。例如:

```json

GET /_analyze

{

  "tokenizer": "standard",

  "filter": [

    {

      "type": "synonym_graph",

      "synonyms": [ "dns, domain name system" ]

    },

    "flatten_graph"

  ],

  "text": "domain name system is fragile"

}

```

展平后的 Token Graph 会丢失一些位置信息,但适合索引。

7.注意事项

• 避免使用无效的 Token Graphs:某些标记过滤器(如`synonym`和`word_delimiter`)仅记录默认的位置长度(1),这可能导致生成无效的 Token Graphs,从而引发意外的搜索结果。

• 性能影响:展平 Token Graphs 是一个有损过程,建议仅在必要时使用。

通过合理使用 Token Graphs,可以显著提升 Elasticsearch 在处理复杂文本分析和搜索场景时的灵活性和准确性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词