• range搜索时间的时候不生效,指定了查询的日期格式之后正常。

  • 指定字段为date,但是索引数据的时候失败了

    要索引的日期  2017-11-02 12:21:00
    
    "created": {
         "type": "date"
    },
    

    具体的不清楚是为什么,但是加上了日期格式之后就正常了

    "created": {
         "type": "date",
         "format": "yyyy-MM-dd HH:mm:ss"
    },
    
  • 我们知道,es中的存储方式与关系型数据库中的有点类似:

    index database
    type table
    field field

    但是刚才看文档的时候发现, es 已经计划移除type这个概念了, 但是这是为什么呢?原来,我们总是认为es的存储方式类似上表, 但是其实他们是有很大的不同的。MySQL一个库中不同表之间是相互独立的,不同表之间的同名字段也是不会造成任何影响的,而在ES中却不同,同一个index下, 不同type间同名的field的映射定义必须是完全一致的,可能你会碰到这么一种情况。 在同一个索引下,有A 和 B 两种类型, 但是当你想删除A类型中的 date 字段和B类型中的name字段时,这时就尴尬了,删除不了。而且, 少量的字段差异,会导致数据分散,使底层Lucence压缩文档的效率降低。

原文:大专栏  ElasticSearch


02-10 03:27