我试图从java代码中创建一个索引来索引一些数据,但是如果我用时间过滤器创建索引模式,kibana就不会显示任何数据。在创建带有某些设置的索引并为日期字段添加索引模板时,请遵循以下顺序
CreateIndexRequest request = new CreateIndexRequest(indexName);
request.settings(Settings.builder()
.put("index.max_inner_result_window", 250)
.put("index.write.wait_for_active_shards", 1)
.put("index.query.default_field", "paragraph")
.put("index.number_of_shards", 3)
.put("index.number_of_replicas", 2)
.loadFromSource(Strings.toString(
XContentFactory.jsonBuilder()
.startObject()
.startObject("analysis")
.startObject("analyzer")
.startObject("englishAnalyzer")
.field("tokenizer", "standard")
.field("char_filter", "html_strip")
.field("filter", new String[] { "snowball", "standard", "lowercase" })
.endObject()
.startObject("email")
.field("filter", new String[] { "standard", "lowercase" })
.field("type", "custom")
.field("tokenizer", "uax_url_email")
.endObject()
.endObject()
.endObject()
.endObject()), XContentType.JSON));
CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);
在模板下面插入第一条记录之前。
PutIndexTemplateRequest request = new PutIndexTemplateRequest(templateName);
request.patterns(templateList);
request.settings(Settings.builder().put("index.number_of_shards", 3).put("index.number_of_replicas", 1));
XContentBuilder builder = XContentFactory.jsonBuilder();
builder.startObject();
{
builder.startObject("properties");
{
builder.startObject("createdDate");
{
builder.field("type", "date").field("format", "yyyy-MM-dd HH:mm:ss.SSS");
}
builder.endObject();
}
builder.endObject();
}
builder.endObject();
request.mapping(builder);
request.version();
client.indices().putTemplate(request, RequestOptions.DEFAULT);
然后我将下面的记录作为json插入,但在创建带有时间过滤器的索引模式时,会在kibana发现中继续显示空结果
{
"createdDate": "2020-11-25 13:33:36.782",
"userId": "raw.man@bee.com",
}
不明白我的代码出了什么问题。我用的是麋鹿7.4
如果我选择“我不想使用时间过滤器”,那么我可以看到kibana中的数据
暂无答案!
目前还没有任何答案,快来回答吧!