弹性搜索+ JSON导入(ELK堆栈)

时间:2017-05-23 07:22:37

标签: json elasticsearch kibana

我正在尝试将基本的JSON文件导入到我的ELK堆栈中。我尝试通过这样的POST请求直接导入它:

curl -XPOST http://localhost:9200/kwd_results/TS_Cart -d @ / home / local / TS_Cart.json

ES说导入正常,但是当我尝试查看Kibanna中的日志时,它们没有被JSON文件的节点编入索引。我猜我需要像模板映射才能正确查看它。

我的JSON文件如下所示:

{
  "testResults": {
    "FitNesseVersion": "v20160618",
    "rootPath": "K1System.CountryDe.DriverFirefox.TestCases.MainFolder.TestVariants.SmokeTests_B2C.TS_Cart",
    "result": [
      {
        "counts": {
          "right": "16",
          "wrong": "2",
          "ignores": "3",
          "exceptions": "1"
        },
        "date": "2017-05-10T00:01:11+02:00",
        "runTimeInMillis": "117242",
        "relativePageName": "TestCase_1",
        "pageHistoryLink": "K1System.CountryDe.DriverFirefox.TestCases.MainFolder.TestVariants.SmokeTests_B2C.TS_Cart.B2CFreeCatalogueOrder?pageHistory&resultDate=20170510000111",
        "tags": "de, at"
      },
      {
        "counts": {
          "right": "16",
          "wrong": "0",
          "ignores": "0",
          "exceptions": "0"
        },
        "date": "2017-05-10T00:03:08+02:00",
        "runTimeInMillis": "85680",
        "relativePageName": "TestCase_2",
        "pageHistoryLink": "K1System.CountryDe.DriverFirefox.TestCases.MainFolder.TestVariants.SmokeTests_B2C.TS_Cart.B2CGiftCardOrderWithAdvancePayment?pageHistory&resultDate=20170510000308",
        "tags": "at, de"
      }
    ],
    "finalCounts": {
      "right": "4",
      "wrong": "1",
      "ignores": "0",
      "exceptions": "0"
    },
    "totalRunTimeInMillis": "482346"
  }
}

基本上我需要将rootPath用作索引,同时拥有以下子节点:counts, relativePageName, date and tags。请注意,我有两个节点是result []数组的子节点。

非常感谢任何帮助!

谢谢。

1 个答案:

答案 0 :(得分:0)

嗯,这是一个JSON文档,所以Elasticsearch会这样对待它。

您需要(以编程方式)将文档拆分为正确的文档,然后您可以存储它们(可能有一个_bulk请求)。

索引名称:

  1. 必须为小写,因此您需要投射该值。
  2. 你会有很多不同的根路径,每个都有几个文档吗?那么你不应该把它们都变成索引,因为它们中的每一个都有一个开销(实际上是底层的分片)。