配置标准令牌生成器elasticsearch

时间:2018-10-02 17:18:36

标签: elasticsearch

我在弹性搜索中为索引使用默认令牌生成器(标准)。并向其中添加文档。但是标准标记器无法拆分带有“。”的单词点在其中。例如:

POST _analyze
{
  "tokenizer": "standard",
  "text": "pink.jpg"
}

给我的答复是:

{
  "tokens": [
    {
      "token": "pink.jpg",
      "start_offset": 0,
      "end_offset": 8,
      "type": "<ALPHANUM>",
      "position": 0
    }
  ]
}

以上回答在一词中显示了整个单词。我们可以在标准令牌生成器中使用“。”(点)运算符将其分为两个术语吗?标准令牌生成器中对此有任何设置吗?

2 个答案:

答案 0 :(得分:1)

使用标准令牌生成器无法实现所需的功能,但是这里的字母令牌生成器可以帮助您

POST _analyze
{
  "tokenizer": "letter",
  "text": "pink.jpg"
}

产生

{
  "tokens": [
    {
      "token": "pink",
      "start_offset": 0,
      "end_offset": 4,
      "type": "word",
      "position": 0
    },
    {
      "token": "jpg",
      "start_offset": 5,
      "end_offset": 8,
      "type": "word",
      "position": 1
    }
  ]
}

答案 1 :(得分:0)

Letter Tokenizer会做您想要的事情,不确定是否能覆盖您的所有用例。

Standard Tokenizer只有一个配置参数`max_token_length,这对您的情况没有帮助。