elasticsearch 2.3.4 java API 连接,ik分词器,设置集群节点,创建index,mapping的几种方式

1、默认集群连接

Client client = TransportClient.builder().build()
    	        .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

2、自定义集群连接

Settings settings = Settings.settingsBuilder().put("cluster.name", "cluster-lhy").build();
		Client client = TransportClient.builder().settings(settings).build().addTransportAddress(new   InetSocketTransportAddress(InetAddress.getByName("localhost"),   9300));

3、index创建

 client.admin().indices().prepareCreate("phone12").get();

4、mapping创建

有四种方式,只提倡前两种(json字符串格式和XContentBuilder),都是一个方法,不同类型参数

	Client client = TransportClient.builder().build()
    	        .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

        new XContentFactory();

        XContentBuilder builder=XContentFactory.jsonBuilder()

        .startObject()//注意不要加index和type

                .startObject("properties")

                .startObject("id1").field("type", "integer").field("store", "yes").endObject()

                .startObject("kw1").field("type", "string").field("store", "yes").field("analyzer", "ik").endObject()

                .startObject("edate33").field("type", "date").field("store", "yes").endObject()

                .endObject()

            .endObject();

  /**
   * 创建并添加方式1
   */
      /*  client.admin().indices().prepareCreate("twitter1")
        .addMapping("tweet", "{\n" +
                "    \"tweet\": {\n" +
                "      \"properties\": {\n" +
                "        \"message1\": {\n" +
                "          \"type\": \"string\",\n" +
                	   "             \"indexAnalyzer\": \"ik\"\n"+
                "        }\n" +
                "      }\n" +
                "    }\n" +
                "  }")
        .get();*/
        /**
         * 创建并添加方式2
         */
    	  //client.admin().indices().prepareCreate("phone1").addMapping("jingdong", builder).get();
        /**
         * 修改type中属性 方式1
         */
   /*     client.admin().indices().preparePutMapping(new String[]{"phone"})
        .setType("jingdong")
        .setSource("{\n" +
                "  \"properties\": {\n" +
                "    \"nameaaa\": {\n" +
                "      \"type\": \"string\"\n" +
                "    }\n" +
                "  }\n" +
                "}")
        .get();*/

        /**
         * 修改type中属性 方式2
         */
        /*client.admin().indices().preparePutMapping(new String[]{"phone"})
        .setType("jingdong").setSource(builder)
        .get();*/
        /**
         * 方式3不推荐
         */
       /* Map map=new HashMap();
        Map map2=new HashMap();
        map2.put("type", "string");
        Map map3=new HashMap();

        map.put("ooooooooo",map2);
        map3.put("properties", map);
        client.admin().indices().preparePutMapping(new String[]{"phone"})   

        .setType("jingdong").setSource(map3)
        .get();
        client.close();*/

5、2.3.4版本elasticsearch的ik分词器配置注意

 不需要再在elasticsearch配置文件elasticsearch.yml中配置

1.从https://github.com/medcl/elasticsearch-analysis-ik下载elasticsearch-analysis-ik-master.zip

2.解压elasticsearch-analysis-ik-master.zip

   unzip elasticsearch-analysis-ik-master.zip

3.进入elasticsearch-analysis-ik-master,编译源码

  cd  elasticsearch-analysis-ik-master

  mvn clean package

  编译后会放在 elasticsearch-analysis-ik-master/target/releases目录下

4.在$ES_HOME/plugins文件夹下创建ik

    mkdir ik

5、找到将编译后生成的elasticsearch-analysis-ik-1.9.4.zip解压到$ES_HOME/plugins/ik下

测试分词器curl -XPOST  "http://localhost:9200/索引/_analyze?analyzer=ik&pretty=true&text=我是中国人" 

时间: 2024-11-01 05:56:36

elasticsearch 2.3.4 java API 连接,ik分词器,设置集群节点,创建index,mapping的几种方式的相关文章

如何开发自己的搜索帝国之安装ik分词器

 Elasticsearch默认提供的分词器,会把每个汉字分开,而不是我们想要的根据关键词来分词,我是中国人 不能简单的分成一个个字,我们更希望 "中国人","中国","我"这样的分词,这样我们就需要安装中文分词插件,ik就是实现这个功能的. elasticsearch-analysis-ik 是一款中文的分词插件,支持自定义词库. 现在开始安装ik分词器,安装之前,先说明一些变化: 之前可以在node节点上配置index默认的分词器,如果是多节

跟益达学Solr5之使用IK分词器

   在Solr中该如何使用IK分词器呢,这是小伙伴们问的频率比较高的一个问题,今晚特此更新此篇博客.其实之前我在其他博客里已经使用了IK分词器,只是我没做详细说明.        在schema.xml配置中其实有很多关于分词器的配置示例,我从中摘录一段配置示例,比如: Xml代码   <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100&qu

elasticsearch-Elasticsearch 安装完IK分词插件后使用curl命令创建索引出错,如题。

问题描述 Elasticsearch 安装完IK分词插件后使用curl命令创建索引出错,如题. 我配置完分词插件后输入了以下创建索引的命令. curl -XPUT http://localhost:9200/index 但是却出现了下面的错误. $ curl -XPUT http://localhost:9200/index % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spe

solr4.10和solr5.x ik分词器配置,(Deprecated--2017-04-23)

A:配置IK-Analyzer: 1.下载wltea-IK-Analyzer-2012FF-master,将IK-Analyzer-2012FF\dist中的IKAnalyzer2012_FF.jar和IKAnalyzer2012FF_u1.jar拷贝到:/home/software/solr-5.3.1/server/solr-webapp/webapp/WEB-INF/lib   (注意:这个wltea-IK-Analyzer-2012FF-master针对solr-4.10的还可以,但是针

Redis 一二事 - 在spring中使用jedis 连接调试单机redis以及集群redis

Redis真是好,其中的键值用起来真心强大啊有木有, 之前的文章讲过搭建了redis集群 那么咋们该如何调用单机版的redis以及集群版的redis来使用缓存服务呢? 先讲讲单机版的,单机版redis安装非常简单,不多说了,直接使用命令:  1 [root@nginx bin]# ./redis-server redis.conf  启动就行 在sprig文件中配置如下 1 <!-- 2 TODO: 3 开发环境使用单机版 4 生产环境务必切换成集群 5 --> 6 <!-- 配置red

ES java api

2.0之后ES的java api用法有了很大变化.在此记录一些. java应用程序连接ES集群,笔者使用的是TransportClient,获取TransportClient的代码设计为单例模式(见getClient方法).同时包含了设置自动提交文档的代码.注释比较详细,不再赘述. 下方另有提交文档.提交搜索请求的代码. 1.连接ES集群代码如下:  1 package elasticsearch; 2 3 import com.vividsolutions.jts.geom.GeometryF

ElasticSearch 安装 ik 分词插件

       在搜索领域,中文分词一直都是难题.经过很多大牛的不懈努力,还是出现了一些很不错的中文分词器,比如本文提到的IK.本文主要基于ES,安装ik分词插件.        一.IK简介     IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包.从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本.最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件.从3.0版本开 始,IK发展为面向Java的公用分

如何在Elasticsearch中安装中文分词器(IK+pinyin)

如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. 这是因为使用了Elasticsearch中默认的标准分词器,这个分词器在处理中文的时候会把中文单词切分成一个一个的汉字,因此引入中文的分词器就能解决这个问题. 本篇文章按照下面的内容进行描述: 分词器的作用 安装IK 简单的测试 模拟测试 安装elasticsearch-analysis-piny

Elasticsearch集群配置和管理教程

ElasticSearch集群服务器配置 一.安装 ElasticSearch是基于Lence的,而Lence是用Java编写的开源库,需要依赖Java的运行环境.现在使用的ELasticSearch版本是1.6,它需要jdk1.7或以上的版本.本文使用的是linux系统,安装配置好Java环境,把download下来,解压后直接执行启动就可以了. 1.安装启动elasticsearch:cd到elasticsearch-1.6.0.tar.gz 放置的目录,解压 tar -xvf elasti