es学习笔记--3
IK分词器插件(中文分词器 )
注意:版本需要下载对应es的版本
两个分词算法:ik_smart和ik_max_word,其中ik_smart为最少切分,ik_max_word为最细粒度划分
配置自定义拓展字典
ik\config\IKAnalyzer.cfg.xml
Rest风格
1.添加数据
PUT /supjh/user/1
{
"name":"supjh22",
"age":22
"desc":"一个gamer"
"tags":["大学生","玩家","程序员"]
}
PUT /supjh/user/2
{
"name":"张三",
"age":3
"desc":"法外狂徒"
"tags":["交友","旅游","铸币"]
}
PUT /supjh/user/3
{
"name":"李四",
"age":30
"desc":"未知描述"
"tags":["大龄","起飞","芜湖"]
}
2.获取数据
GET supjh/user/1
3.更新数据
PUT /supjh/user/3
{
"name":"李四",
"age":30
"desc":"2333"
"tags":["大龄","起飞","芜湖"]
}
put如果不传递值就会被覆盖
POST _update,推荐使用这种更新方式!
POST supjh/user/2/_update
POST supjh/user/2/_update
{
"doc":{
"name":"张3"
}
}
_update灵活性更高
4.搜索数据
这些MySQL也可以做,只是效率比较低!
- 匹配
- 按照条件匹配
- 精确匹配
- 区间范围匹配
- 匹配字段过滤
- 多条件查询
- 高亮查询
简单搜索:
根据默认的映射规则,产生基本的查询!
GET supjh/user/_search?q=name:supjh22
复杂搜索:(select:排序,分页,高亮,模糊查询,精准查询!)
_score:权重分数
查询的参数体:
GET supjh/user/_search
{
"query":{
"match":{
"name":"jh"
}
}
}
hit:
过滤字段:
我们之后使用java操作es,所有的方法和对象就是这里面的key!(如query,_source)
排序:
分页查询:
数据下表还是从0开始,和学的所有数据结构是一样的!
/search/{current}/{pagesize}
布尔值查询:
must(and),所有条件都要符合
should(or),满足一个条件即可
must_not(not)
过滤器filter
- gt:大于
- gte:大于等于
- lt:小于
- lte:小于等于
匹配多个条件:
精确查询:
term 查询,是直接通过倒排索引指定的词条进行精确查询!
关于分词:
- term,直接查询精确的
- match,会使用分词器解析(先分析文档,然后再通过分析的文档进行查询)
浙公网安备 33010602011771号