【发布时间】:2018-02-04 03:31:47
【问题描述】:
我无法决定将事件信息保存到 elasticsearch 的方式。信息存储在 mysql 中,因为我想让它们可过滤,所以我决定使用 elasticsearch 来索引事件。每个字段都有有限数量的选项,但允许有多个选项。我应该像这样直接存储信息吗:
{
"id":"1",
"name":"Event A",
"type":"Training,Workshop,Meeting",
"industrialSector":"Energy,Transport",
"country":"China"
// + 80 fields alike
}
或者在保存到elasticsearch之前使用一些后端工作将字符串值转换为数字标记:
{
"id":"1",
"name":"Event A",
"type":"1 3 5",
"industrialSector":"2 3",
"country":"7"
// + 80 fields alike
}
在保存之前或获取之后会有一个地图对象来引用字段选项:
let options =
{
type:{
Training:1,
Fair:2
Workshop:3,
Brokerage:4
Meeting:5
},
industrialSector:{
Tech:1
Energy:2
Transport:3
}
}
第一个需要较少的工作,但它的执行速度是否比第二个慢并且需要更多的磁盘空间?
【问题讨论】:
标签: elasticsearch lucene elasticsearch-5