将预先标记化的文本插入 Elasticsearch

Insert pre-tokenized text into Elasticsearch

我有一个问题,我想使用托管的 Elasticsearch 服务,但他们特别没有我需要的插件。该插件是拼音插件,它提供了一个自定义的分词器。我的想法是在插入 Elasticsearch 之前在预处理步骤中复制这种标记化。

例如,如果我调用 _analyze?text=%e5%88%98%e5%be%b7%e5%8d%8e&analyzer=pinyin_analyzer 我会收到输出

{
  "tokens": [
    {
      "token": "ldh",
      "start_offset": 0,
      "end_offset": 3,
      "type": "word",
      "position": 1
    },
    {
      "token": "liu",
      "start_offset": 0,
      "end_offset": 3,
      "type": "word",
      "position": 2
    },
    {
      "token": "hua",
      "start_offset": 0,
      "end_offset": 3,
      "type": "word",
      "position": 4
    }
  ]
}

我有办法在预处理步骤中生成这样的标记,但是否可以将它们预先分析后插入到 Elasticsearch 索引中?

您可以创建一个标记化值数组。效果是一样的。此外,如果您正在进行所有预处理而不仅仅是标记化,请使用关键字字段。否则您的代币将再次单独分析。