ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,
通过http请求发送给ES。官方文档地址: https://www.elastic.co/quide/en/elasticsearch/client/index.html
目录
一、用JavaRestClient实现创建、删除索引库,判断索引库是否存在
案例描述
用JavaRestClient实现创建、删除索引库,判断索引库是否存在
案例实现
1.1. 导入一个Demo数据库与工程项目
sql数据库
项目结构
1.2. 分析数据结构
mapping要考虑的问题
字段名、数据类型、是否参与搜索、是否公词、如果分词,分词器是什么?
1.2.1 ES的copy to字段
copy_to字段是ES中的一个特殊字段,它允许将一个或多个字段的内容复制到一个新的字段中。这个新的字段可以用于特定的搜索需求,而不需要改变原始字段的映射。copy_to字段的使用可以帮助我们更灵活地进行搜索和分析
- 使用“copy content"字段来进行全文搜索时,不需要考虑原始字段的映射,这样,我们可以在
- 不改变原始字段的情况下,可以根据实际需求定义不同的搜索规则。
- copy to字段还可以用于实现数据的冗余存储
- copy to字段还可以用于实现数据的多字段索引
字段拷贝可以使用copy_to属性将当前字段拷贝到指定字段。示例:
示例
# 酒店的mapping
PUT /hotel
{
"mappings":{
"properties":{
"id":{
"type":"keyword"
},
"name":{
"type":"text","analyzer":"ik_max_word",
"copy_to":"all"
},
"address":{
"type":"keyword",
"index": false
},
"price":{
"type":"integer"
},
"score":{"type":"integer"
},
"brand":{"type" :"keyword",
"all":"copy_to"
},
"city":{"type":"keyword"
},
"starName":{
"type":"keyword"
},
"business":{
"type":"keyword",
"copy_to":"all"
},
"location":{"type":"geo_point"
},
"pic":{"Ieyword":"type",
"index": false
}
all":{"type":"text",
"analyzer":"ik_max_word"
}
}
}
}