解决自动映射时默认分词器的使用

ElasticSearch默认自动建立索引和映射

如果我们直接插入一个文档,那么索引和映射都有了。和关系型数据库不一样,和mongodb类似。(首先的准备Article实体类,还有转成json的工具类)

//直接插入文档,自动创建索引和映射
	//文档的创建
	@Test
	public void testOperDocument() throws Exception{
		//创建连接搜索服务器对象
		//默认的服务的端口是9300
		Client client=TransportClient
				.builder()
				.build()
				.addTransportAddress(
						new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
		
		//++++++++++++++++++++++++++++++++
		Article article=new Article();
		article.setId(1001);
		article.setTitle("我是小白");
		article.setContent("java入门到高深的小白");
		//jackson
		ObjectMapper objectMapper=new ObjectMapper();
		
		//建立文档
		//参数1:索引表的名字
		//参数2:文档类型(通过映射分词条)
		//参数3:文档的主键,如果不指定,则默认生成随机索引主键,如果指定,则索引主键和业务主键一样。
			client.prepareIndex("idx_blog2", "article",article.getId().toString())
			//放入文档json:将java对象序列化为json字符串
			.setSource(objectMapper.writeValueAsString(article))
			.get();
		//++++++++++++++++++++++++++++++++
		//关闭连接
		client.close();
		System.out.println("创建ok....");
		
	}

插入文档的时候,如果索引存在,则直接存入索引;如果索引不存在,则自动先建立索引,再插入。映射会自动建立,但缺点:缺少指定分词器过程。

打开ElasticSearch配置文件:(我这里是)F:\Search\ElasticSearch\installCore\elasticsearch-2.4.5\config下面的elasticsearch.yml配置文件,在最下面一行加入--> index.analysis.analyzer.default.type: "ik" 

指定ElasticSearch默认使用的分词器是ik 

注意:type冒号后面必须有个英文空格,而且不能有中文

然后就可以重启ElasticSearch服务测试了,小白随手记录....





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值