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服务测试了,小白随手记录....