C# 嵌套弹性搜索将 guid 转换为数组



在此处输入图像描述我正在对具有 guid 值的字段进行聚合,例如 c4b0c9ae-345c-4247-87e3-e9d9de67c01b,但是当弹性搜索返回聚合时它正在成为一个数组 ["C4B0C9ae","345C","4247","87E3","E9D9DE67C01B"]。你如何在巢上处理这个问题?

该字段已映射为text数据类型,默认情况下使用标准分析器在索引时进行分析。结果是,GUID 通过拆分连字符来标记化为组成部分。您可以使用分析 API(在 Kibana 控制台中)亲自查看此信息

GET _analyze
{
    "analyzer": "standard",
    "text": ["c4b0c9ae-345c-4247-87e3-e9d9de67c01b"]
}

收益 率

{
   "tokens": [
      {
         "token": "c4b0c9ae",
         "start_offset": 0,
         "end_offset": 8,
         "type": "<ALPHANUM>",
         "position": 0
      },
      {
         "token": "345c",
         "start_offset": 9,
         "end_offset": 13,
         "type": "<ALPHANUM>",
         "position": 1
      },
      {
         "token": "4247",
         "start_offset": 14,
         "end_offset": 18,
         "type": "<NUM>",
         "position": 2
      },
      {
         "token": "87e3",
         "start_offset": 19,
         "end_offset": 23,
         "type": "<ALPHANUM>",
         "position": 3
      },
      {
         "token": "e9d9de67c01b",
         "start_offset": 24,
         "end_offset": 36,
         "type": "<ALPHANUM>",
         "position": 4
      }
   ]
}

你可能不想在索引时分析 GUID,因此应将它们显式映射为关键字数据类型。

最新更新