ElasticSearch添加mapping

1.创建索引

/** * 创建索引 * * @param indexName */public static void createIndex(String indexName) {    //插入前删除,以免报错    boolean flag = client.admin().indices().exists(new IndicesExistsRequest().indices(new String[]{indexName})).actionGet().isExists();    if (flag){        client.admin().indices().prepareDelete(indexName).execute().actionGet();    }    client.admin().indices().prepareCreate(indexName).get();    //client.admin().indices().prepareCreate(indexName)    //        .setSettings(Settings.builder()    //                .put("index.number_of_shards", 3)    //                .put("index.number_of_replicas", 2)    //        )    //        .get();}

2.创建mapping

    /**
     * 创建mapping,根据需求修改
     *
     * @param indexName
     * @param typeName
     */
    public static void createMapping(String indexName, String typeName) {
        XContentBuilder mappingType = null;
        try {
            mappingType = jsonBuilder()
                    .startObject()
                    .startObject(typeName)
                    .startObject("properties")
                    .startObject("id").field("type", "integer").field("store", "yes").endObject()
                    .startObject("Name").field("type", "string").field("store", "yes").field("analyzer", "ik_smart").field("search_analyzer", "ik_smart").endObject()
                    .startObject("updatedate").field("type", "date").field("store", "yes").endObject()
                    .endObject()
                    .endObject()
                    .endObject();
        } catch (IOException e) {
            logger.error("build company mapping failed", e);
        }
        PutMappingRequest mapping = Requests.putMappingRequest(indexName).type(typeName).source(mappingType);
        client.admin().indices().putMapping(mapping).actionGet();
        client.admin().indices().prepareRefresh().get();
        //client.close();
    }
时间: 2024-11-04 20:44:00

ElasticSearch添加mapping的相关文章

ELK学习总结(4-1)elasticsearch更改mapping(不停服务重建索引)

elasticsearch更改mapping(不停服务重建索引)原文 http://donlianli.iteye.com/blog/1924721Elasticsearch的mapping一旦创建,只能增加字段,而不能修改已经mapping的字段.但现实往往并非如此啊,有时增加一个字段,就好像打了一个补丁,一个可以,但是越补越多,最后自己都觉得惨不忍睹了.怎么办??这里有一个方法修改mapping,那就是重新建立一个index,然后创建一个新的mapping.你可能会问,这要是在生产环境,可行

elasticsearch 之mapping

搭好elk 后,有时候会发现kibana 统计数据时,数据类型不对,这个时候就和elasticsearch的mapping有关,虽然我们可以用logstash修改传入es里的数据类型,比如 float 或者int 或者string.但是没有double等类型,就算转换了,你会发现写入es的数据还是根据es里mapping表来定义的.接下来我们来学习修改es的mapping,当然mapping的功能有很多种,比如定义索引是否分词,分片和副本的数量是多少等等. 1) 什么是mapping ES的ma

Elasticsearch添加Shield后TransportClient如何连接?

Elasticsearch添加Shield后TransportClient如何连接? 时间 2015-12-28 10:24:01  旁门左道 原文  http://log.medcl.net/item/2015/12/shieldtransportclient-xia-ru-he-shi-yong/ 主题 Elastic Search Shield是Elasticsearch一个安全防护插件,提供了权限访问控制和日志审计功能,企业可以很方便的和LDAP或是ActiveDirectory进行集成

通过Java的Domain类构建ElasticSearch的mapping

通过给定一个Java的class类自行创建ElasticSearch的mapping Order的domain类 public class Order { public String system_id; public String finger_id; public String merchant_id; public Double tx_money; public String pay_date; public String payment_status; public Date settl

elasticsearch 的mapping根据不同的数据格式设定属性

申明:学习探讨笔记,非结果性定义.里面很多可能是错误的,参考价值不大 elasticsearch 的mapping 订单号 如:ATTS000928732 类型不分词. index: not_analyzed 订单号是全部数据 如: 63745345637  这样的分词是可以的. PUT /Order_v5 { "settings": {      //设置10个分片,理解为类似数据库中的表分区中一个个分区的概念,不知道是否妥当      "number_of_shards&

elasticsearch的mapping和analysis

转发自:http://blog.csdn.net/hzrandd/article/details/47128895 分析和分析器 分析(analysis)是这样一个过程: 首先,表征化一个文本块为适用于倒排索引单独的词(term) 然后标准化这些词为标准形式,提高它们的"可搜索性"或"查全率" 这个工作是分析器(analyzer)完成的.一个分析器(analyzer)只是一个包装用于将三个功能放到一个包里: 字符过滤器 首先字符串经过字符过滤器(character

为Elasticsearch添加中文分词,对比分词器效果

http://keenwon.com/1404.html Elasticsearch中,内置了很多分词器(analyzers),例如standard (标准分词器).english(英文分词)和chinese (中文分词).其中standard 就是无脑的一个一个词(汉字)切分,所以适用范围广,但是精准度低:english 对英文更加智能,可以识别单数负数,大小写,过滤stopwords(例如"the"这个词)等:chinese 效果很差,后面会演示.这次主要玩这几个内容:安装中文分词

(转)Elasticsearch索引mapping的写入、查看与修改

mapping的写入与查看 首先创建一个索引: curl -XPOST "http://127.0.0.1:9200/productindex" {"acknowledged":true} 现在只创建了一个索引,并没有设置mapping,查看一下索引mapping的内容: curl -XGET "http://127.0.0.1:9200/productindex/_mapping?pretty" { "productindex&quo

Elasticsearch索引mapping的写入、查看与修改

mapping的写入与查看 首先创建一个索引: curl -XPOST "http://127.0.0.1:9200/productindex" {"acknowledged":true} 现在只创建了一个索引,并没有设置mapping,查看一下索引mapping的内容: curl -XGET "http://127.0.0.1:9200/productindex/_mapping?pretty" { "productindex&quo