关键词分词器

编辑

keyword 分词器是一个 “noop” 分词器,它接受给定的任何文本,并输出完全相同的文本作为单个词项。它可以与词项过滤器结合使用来规范化输出,例如,将电子邮件地址转换为小写。

示例输出

编辑
resp = client.indices.analyze(
    tokenizer="keyword",
    text="New York",
)
print(resp)
response = client.indices.analyze(
  body: {
    tokenizer: 'keyword',
    text: 'New York'
  }
)
puts response
const response = await client.indices.analyze({
  tokenizer: "keyword",
  text: "New York",
});
console.log(response);
POST _analyze
{
  "tokenizer": "keyword",
  "text": "New York"
}

上面的句子会产生以下词项

[ New York ]

与词项过滤器结合使用

编辑

你可以将 keyword 分词器与词项过滤器结合使用,以规范化结构化数据,例如产品 ID 或电子邮件地址。

例如,以下 Analyze API 请求使用 keyword 分词器和 lowercase 过滤器将电子邮件地址转换为小写。

resp = client.indices.analyze(
    tokenizer="keyword",
    filter=[
        "lowercase"
    ],
    text="[email protected]",
)
print(resp)
response = client.indices.analyze(
  body: {
    tokenizer: 'keyword',
    filter: [
      'lowercase'
    ],
    text: '[email protected]'
  }
)
puts response
const response = await client.indices.analyze({
  tokenizer: "keyword",
  filter: ["lowercase"],
  text: "[email protected]",
});
console.log(response);
POST _analyze
{
  "tokenizer": "keyword",
  "filter": [ "lowercase" ],
  "text": "[email protected]"
}

该请求产生以下词项

配置

编辑

keyword 分词器接受以下参数

buffer_size

单次读取到词项缓冲区中的字符数。默认为 256。词项缓冲区将以该大小增长,直到所有文本都被消耗完毕。建议不要更改此设置。