我遇到了一个经典问题,收藏夹,关于SO的页面或其他任何问答和论坛都没有帮助我。
我需要从字符串中提取参数“ wsProcessingElapsedTimeMS”的数值,例如(其中的参数包含在消息字段中):
2018-07-31 07:37:43,740|DEBUG|[ACTIVE] ExecuteThread: '43' for queue:
'weblogic.kernel.Default (self-tuning)'
|LoggerHandler|logMessage|sessionId=9AWTu
wsOperationName=FindBen wsProcessingEndTime=2018-07-31 07:37:43.738
wsProcessingElapsedTimeMS=6 httpStatus=200 outgoingAddress=172.xxx.xxx.xxx
并不断出错:
"type":"illegal_argument_exception","reason":"Fielddata is disabled on text
fields by default. Set fielddata=true on [message] in order to load fielddata
in memory by uninverting the inverted index. Note that this can however use
significant memory. Alternatively use a keyword field instead."
要点是,我已经通过以下方式运行了查询(如果需要的话,可以通过Kibana GUI中的Dev Tools进行运行)以将字段标记为fielddata:
PUT my_index/_mapping/message
{
"message": {
"properties": {
"publisher": {
"type": "text",
"fielddata": true
}
}
}
}
,它返回了简要信息:
{
"acknowledged": true
}
之后,我尝试重建索引,如下所示:
POST _reindex?wait_for_completion=false
{
"source": {
"index": "my_index"
},
"dest": {
"index": "my_index"
}
}
(已设置?wait_for_completion = false标志,因为否则会超时;现在系统中有很多数据)。
最后,执行了上述步骤之后,我还尝试重新启动了kibana和elasticsearch服务(流程)以强制重新索引(该工具确实很长)。
此外,使用“ message.keyword”代替“ message”(如官方文档中所建议的那样)也无济于事-在大多数情况下,它只是空白。 我正在使用Kibana访问ElasticSearch引擎。 ElasticSearch版本5.6.3 Kibana v.5.6.3 Logstash版本5.5.0
即使使用其他插件(如果它们具有与上述Kibana / ElasticSearch / Logstash版本兼容的版本,因为我现在不能将其更新为新版本),任何建议都会受到赞赏。
答案 0 :(得分:0)
PUT your_index/_mapping/your_type
{
"your_type": {
"properties": {
"publisher": {
"type": "text",
"fielddata": true
}
}
}
}