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`)可以生成跨越多个位置的标记。例如: