ElasticSearch 用ik分词器建立索引(java API)

  ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,作为当前流行的企业级搜索引擎,用于云计算中,能够达到实时搜索,并且具有稳定,可靠,快速安装,使用方便等多种优点,得到大多数企业的青睐。

  ElasicSearch可以通过终端建立索引,但是本人在做项目的时候用终端建立的索引,然后使用Java API进行数据的插入,始终得不到分词,最终的解决办法就是通过Java API进行建立索引,才避免了尴尬,不多说了。

  假设基本数据是poi:

  属性如下:

  poi_index:类似于id

  poi_title:地名  (类似于:武汉大学,华中科技大学等)

  poi_lng:经度

  poi_lat:纬度

  poi_phone:电话(一般为undefined)

  poi_address:地址   (类似于  :XX省XX市XX区XX路XX号)

  poi_tags:标签,类别 (类似于:学校,宾馆,公司等)

  

  如下,某些对象或者变量已经在全局设定好:

//客户端设置
            settings = Settings
                    .builder()
                    .put("cluster.name", "cxy")               //节点名称, 在es配置的时候设置
                    .put("client.transport.sniff", "true")
                    .build();
            //创建客户端

            client = new PreBuiltTransportClient(settings)
                .addTransportAddress(new InetSocketTransportAddress
                        (InetAddress.getByName("127.0.0.1"), 9300));  //以本机作为节点
            //创建映射
            mapping = XContentFactory.jsonBuilder()
                .startObject()
                    .startObject("properties")
                //      .startObject("m_id").field("type","keyword").endObject()
                        .startObject("poi_index").field("type","integer").endObject()
                        .startObject("poi_title").field("type","text").field("analyzer","ik_max_word").endObject()
                        .startObject("poi_address").field("type","text").field("analyzer","ik_max_word").endObject()
                        .startObject("poi_tags").field("type","text").field("analyzer","ik_max_word").endObject()
                        .startObject("poi_phone").field("type","text").field("analyzer","ik_max_word").endObject()
                        .startObject("poi_lng").field("type","text").endObject()
                        .startObject("poi_lat").field("type","text").endObject()
                    .endObject()
                .endObject();
            //pois:索引名   cxyword:类型名(可以自己定义)
            PutMappingRequest putmap = Requests.putMappingRequest("pois").type("cxyword").source(mapping);
            //创建索引
            client.admin().indices().prepareCreate("pois").execute().actionGet();
            //为索引添加映射
            client.admin().indices().putMapping(putmap).actionGet();

  这个时候索引就创建好了,mapping不能掉,这相当于一扇门户,对数据按照设定规则处理,ik_max_word 是分词类型,最细粒度切割,网上搜索ik分词器的配置,这里就不说了,下一篇是往索引里面插入数据。

时间: 2024-08-08 13:57:01

ElasticSearch 用ik分词器建立索引(java API)的相关文章

elasticsearch安装ik分词器(极速版)

简介:下面讲有我已经打包并且编辑过的zip包,你可以在下面下载即可. 1.下载zip包.elasticsearch-analysis-ik-1.8.0.jar下面有附件链接[ik-安装包.zip],下载即可.(内有做好的elasticsearch-analysis-ik-1.8.0.jar) 2.上传zip包.下载ik.zip文件后解压缩,如下图. 修改plugin-descriptor.properties文件,将elasticsearch.version=2.2.0改成自己的elastics

ElasticSearch、IK分词器、Head Master安装-----Windows

ElasticSearch安装运行前提条件:配置好Jdk Head-Master运行前提条件:node 一.下载 地址:https://www.elastic.co/cn/downloads/elasticsearch 历史版本:找到下面这句话 然后双击 Not the version you're looking for? View past releases. 二.IK分词器下载 地址:https://github.com/medcl/elasticsearch-analysis-ik/re

Elasticsearch 集成IK分词器

我个人最喜欢使用IK分词,确实很方便,并且更新也快,这里做个简单介绍吧 分词插件IK 插件安装 1. 下载https://github.com/medcl/elasticsearch-analysis-ik 2. 解压进入目录执行"mvn clean package",生成target目录. 3. 解压后将config/ik目录复制到你的elasticsearch主目录的config目录下 4. 编辑config/elasticsearch.yml,在文件末尾添加下面内容(不能有tab

elasticsearch安装ik分词器(非极速版)

1.下载下载地址为: https://github.com/medcl/elasticsearch-analysis-ik 2.解压把下载的 elasticsearch-analysis-ik.zip解压. 3.Maven打包进入elasticsearch-analysis-ik-master/ 下,打包.注意:打包后的文件在elasticsearch-analysis-ik-master/target/目录下.打包命令:mvn clean package 4.创建目录ikcd elastics

IK 分词器和ElasticSearch集成使用

一.IK分词器简介 IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包.从2006年12月推出1.0版开始,IKAnalyzer已经推出 了3个大版本.最初,它是以开源项目Lucene为应用主体的,结合词典分词和文法分析算法的中文分词组件.新版本的IKAnalyzer3.0则发展为 面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现. IK分词器3.0的特性如下: 1)采用了特有的“正向迭代最细粒度切分算法“,具有60万字/秒的

ElasticSearch的中文分词器ik

一.前言   为什么要在elasticsearch中要使用ik这样的中文分词呢,那是因为es提供的分词是英文分词,对于中文的分词就做的非常不好了,因此我们需要一个中文分词器来用于搜索和使用. 二.IK分词器的安装和使用 2.1.安装ik    我们可以从官方github上下载该插件,我们下载对应于我们使用的es的版本的ik,并且我们能够看到具体的安装步骤,可以有两种安装方法.      这里我们选择第一种方式:    重启es,我们就可以使用ik这个中文分词器了. 2.2.使用ik中文分词器  

elasticsearch集群&&IK分词器&&同义词

wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.3/elasticsearch-2.3.3.tar.gz 集群安装: 三个节点:master,slave1,slvae2 vi elasticsearch.yml cluster.name: my-application node.name: node-3(节点独有的名称,注意唯一性

使用Docker 安装Elasticsearch、Elasticsearch-head、IK分词器 和使用

原文:使用Docker 安装Elasticsearch.Elasticsearch-head.IK分词器 和使用 Elasticsearch的安装 一.elasticsearch的安装 1.镜像拉取 docker pull elasticsearch:tag 2.启动 docker run -it -e "discovery.type=single-node" --name="es" -p 9200:9200 -p 9300:9300 elasticsearch 3

Elasticsearch 7.x - IK分词器插件(ik_smart,ik_max_word)

一.安装IK分词器 Elasticsearch也需要安装IK分析器以实现对中文更好的分词支持. 去Github下载最新版elasticsearch-ik https://github.com/medcl/elasticsearch-analysis-ik/releases 将ik文件夹放在elasticsearch/plugins目录下,重启elasticsearch. Console控制台输出: [2019-09-04T08:50:23,395][INFO ][o.e.p.PluginsSer