上下文示例数据
编辑上下文示例数据编辑
完成以下步骤,将 seat
示例数据索引到 Elasticsearch 中。配置完成后,您可以针对此示例数据运行任何上下文示例。
seat
数据中的每个文档包含以下字段
先决条件编辑
启动一个 Elasticsearch 实例,然后访问 Kibana 中的 控制台。
配置 seat
示例数据编辑
-
从 Kibana 控制台,为示例数据创建 映射
PUT /seats { "mappings": { "properties": { "theatre": { "type": "keyword" }, "play": { "type": "keyword" }, "actors": { "type": "keyword" }, "date": { "type": "keyword" }, "time": { "type": "keyword" }, "cost": { "type": "double" }, "row": { "type": "integer" }, "number": { "type": "integer" }, "sold": { "type": "boolean" }, "datetime": { "type": "date" } } } }
-
配置一个脚本摄取处理器,在 Elasticsearch 摄取
seat
数据时解析每个文档。以下摄取脚本处理date
和time
字段,并将结果存储在datetime
字段中PUT /_ingest/pipeline/seats { "description": "update datetime for seats", "processors": [ { "script": { "source": "String[] dateSplit = ctx.date.splitOnToken('-'); String year = dateSplit[0].trim(); String month = dateSplit[1].trim(); if (month.length() == 1) { month = '0' + month; } String day = dateSplit[2].trim(); if (day.length() == 1) { day = '0' + day; } boolean pm = ctx.time.substring(ctx.time.length() - 2).equals('PM'); String[] timeSplit = ctx.time.substring(0, ctx.time.length() - 2).splitOnToken(':'); int hours = Integer.parseInt(timeSplit[0].trim()); int minutes = Integer.parseInt(timeSplit[1].trim()); if (pm) { hours += 12; } String dts = year + '-' + month + '-' + day + 'T' + (hours < 10 ? '0' + hours : '' + hours) + ':' + (minutes < 10 ? '0' + minutes : '' + minutes) + ':00+08:00'; ZonedDateTime dt = ZonedDateTime.parse(dts, DateTimeFormatter.ISO_OFFSET_DATE_TIME); ctx.datetime = dt.getLong(ChronoField.INSTANT_SECONDS)*1000L;" } } ] }
-
使用您在上一步骤中定义的
seats
摄取管道摄取一些示例数据。POST seats/_bulk?pipeline=seats&refresh=true {"create":{"_index":"seats","_id":"1"}} {"theatre":"Skyline","play":"Rent","actors":["James Holland","Krissy Smith","Joe Muir","Ryan Earns"],"date":"2021-4-1","time":"3:00PM","cost":37,"row":1,"number":7,"sold":false} {"create":{"_index":"seats","_id":"2"}} {"theatre":"Graye","play":"Rent","actors":["Dave Christmas"],"date":"2021-4-1","time":"3:00PM","cost":30,"row":3,"number":5,"sold":false} {"create":{"_index":"seats","_id":"3"}} {"theatre":"Graye","play":"Rented","actors":["Dave Christmas"],"date":"2021-4-1","time":"3:00PM","cost":33,"row":2,"number":6,"sold":false} {"create":{"_index":"seats","_id":"4"}} {"theatre":"Skyline","play":"Rented","actors":["James Holland","Krissy Smith","Joe Muir","Ryan Earns"],"date":"2021-4-1","time":"3:00PM","cost":20,"row":5,"number":2,"sold":false} {"create":{"_index":"seats","_id":"5"}} {"theatre":"Down Port","play":"Pick It Up","actors":["Joel Madigan","Jessica Brown","Baz Knight","Jo Hangum","Rachel Grass","Phoebe Miller"],"date":"2018-4-2","time":"8:00PM","cost":27.5,"row":3,"number":2,"sold":false} {"create":{"_index":"seats","_id":"6"}} {"theatre":"Down Port","play":"Harriot","actors":["Phoebe Miller","Sarah Notch","Brayden Green","Joshua Iller","Jon Hittle","Rob Kettleman","Laura Conrad","Simon Hower","Nora Blue","Mike Candlestick","Jacey Bell"],"date":"2018-8-7","time":"8:00PM","cost":30,"row":1,"number":10,"sold":false} {"create":{"_index":"seats","_id":"7"}} {"theatre":"Skyline","play":"Auntie Jo","actors":["Jo Hangum","Jon Hittle","Rob Kettleman","Laura Conrad","Simon Hower","Nora Blue"],"date":"2018-10-2","time":"5:40PM","cost":22.5,"row":7,"number":10,"sold":false} {"create":{"_index":"seats","_id":"8"}} {"theatre":"Skyline","play":"Test Run","actors":["Joe Muir","Ryan Earns","Joel Madigan","Jessica Brown"],"date":"2018-8-5","time":"7:30PM","cost":17.5,"row":11,"number":12,"sold":true} {"create":{"_index":"seats","_id":"9"}} {"theatre":"Skyline","play":"Sunnyside Down","actors":["Krissy Smith","Joe Muir","Ryan Earns","Nora Blue","Mike Candlestick","Jacey Bell"],"date":"2018-6-12","time":"4:00PM","cost":21.25,"row":8,"number":15,"sold":true} {"create":{"_index":"seats","_id":"10"}} {"theatre":"Graye","play":"Line and Single","actors":["Nora Blue","Mike Candlestick"],"date":"2018-6-5","time":"2:00PM","cost":30,"row":1,"number":2,"sold":false} {"create":{"_index":"seats","_id":"11"}} {"theatre":"Graye","play":"Hamilton","actors":["Lin-Manuel Miranda","Leslie Odom Jr."],"date":"2018-6-5","time":"2:00PM","cost":5000,"row":1,"number":20,"sold":true}