{
  "settings": {
    "index": {
      "number_of_shards": 4,
      "number_of_replicas": 0,
      "refresh_interval" : "1000ms"
    },
    "similarity": {
        "scripted_sim": {
          "type": "scripted",
          "script": {
            "source": "double idf = Math.log(1+(field.docCount-term.docFreq+0.5)/(term.docFreq + 0.5))/Math.log(1+((field.docCount-0.5)/1.5)); return query.boost * idf * Math.min(doc.freq, 1);"
          }
        }
    }
  },
  "mappings": {
      "properties": {
        "lat_lon": {"type": "geo_point", "store":"true"}
      },
      "date_detection": "true",
      "dynamic_templates": [
        {
          "int": {
            "match": "*_int",
            "mapping": {
              "type": "integer",
              "store": "true"
            }
          }
        },
        {
          "numeric": {
            "match": "*_flt",
            "mapping": {
              "type": "float",
              "store": true
            }
          }
        },
        {
          "tks": {
            "match": "*_tks",
            "mapping": {
              "type": "text",
              "similarity": "scripted_sim",
              "analyzer": "whitespace",
              "store": true
            }
          }
        },
        {
          "ltks":{
            "match": "*_ltks",
            "mapping": {
              "type": "text",
              "analyzer": "whitespace",
              "store": true
            }
          }
        },
        {
          "kwd": {
            "match_pattern": "regex",
            "match": "^(.*_(kwd|id|ids|uid|uids)|uid)$",
            "mapping": {
              "type": "keyword",
              "similarity": "boolean",
              "store": true
            }
          }
        },
        {
          "dt": {
            "match_pattern": "regex",
            "match": "^.*(_dt|_time|_at)$",
            "mapping": {
              "type": "date",
              "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||yyyy-MM-dd_HH:mm:ss",
              "store": true
            }
          }
        },
        {
          "nested": {
            "match": "*_nst",
            "mapping": {
              "type": "nested"
            }
          }
        },
          {
            "object": {
              "match": "*_obj",
              "mapping": {
                "type": "object",
                "dynamic": "true"
              }
            }
          },
        {
            "string": {
              "match": "*_with_weight",
              "mapping": {
                "type": "text",
                "index": "false",
                "store": true
              }
            }
        },
        {
            "string": {
              "match": "*_fea",
              "mapping": {
                "type": "rank_feature"
              }
            }
        },
        {
            "dense_vector": {
              "match": "*_512_vec",
              "mapping": {
                "type": "dense_vector",
                "index": true,
                "similarity": "cosine",
                "dims": 512
              }
            }
        },
        {
            "dense_vector": {
              "match": "*_768_vec",
              "mapping": {
                "type": "dense_vector",
                "index": true,
                "similarity": "cosine",
                "dims": 768
              }
            }
        },
        {
            "dense_vector": {
              "match": "*_1024_vec",
              "mapping": {
                "type": "dense_vector",
                "index": true,
                "similarity": "cosine",
                "dims": 1024
              }
            }
        },
        {
            "dense_vector": {
              "match": "*_1536_vec",
              "mapping": {
                "type": "dense_vector",
                "index": true,
                "similarity": "cosine",
                "dims": 1536
              }
            }
        },
        {
            "binary": {
              "match": "*_bin",
              "mapping": {
                "type": "binary"
              }
            }
        }
      ]
    }
}