
6.关于文档的基本操作(重点)
6.关于文档的基本操作(重点)
1.添加数据
PUT /zjzaki/user/1
{
"name": "zjzaki",
"age": 5,
"desc": "一顿操作猛如虎,一看工资2500",
"tags": ["技术宅","温暖","直男"]
}
2.获取数据
GET zjzaki/user/1
3.更新数据
PUT /zjzaki/user/3
{
"name": "张三222",
"age": 20,
"desc": "法外狂徒",
"tags": ["交友","旅游"]
}
Post _update, 推荐使用这种方式
PUT /zjzaki/user/3/_update
{
"doc": {
"name": "法外狂徒张三"
}
}
4.简单的搜索
GET zjzaki/user/1
4.1.简单的条件查询
GET zjzaki/user/_search?q=name:zjzaki
4.2.复杂操作 select(排序,分页,高亮,模糊查询,精准查询!)
4.2.1._source 结果过滤
GET zjzaki/user/_search
{
"query": {
"match": {
"name": "李"
}
},
"_source": ["name","desc"]
}
我们使用java操作es,所有的方法和对象就是这里面的key
4.2.2.sort 排序
GET zjzaki/user/_search
{
"query": {
"match": {
"name": "李"
}
},
"sort": [
{
"age": {
"order": "desc"
}
}
]
}
4.2.3.分页查询
GET zjzaki/user/_search
{
"query": {
"match": {
"name": "李"
}
},
"sort": [
{
"age": {
"order": "desc"
}
}
],
"from": 0,
"size": 20
}
4.2.4.布尔值查询
must (and) 所有的条件都要符合
GET zjzkai/user/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "狂胜说"
}
},
{
"match": {
"age": 3
}
}
]
}
}
}
should (or)
must_not 不是
filter 过滤
GET zjzaki/user/_search
{
"query": {
"bool": {
"must": [
{
"match": {
"name": "zjzaki"
}
}
],
"fillter": {
"range": {
"age": {
"lt": 10
}
}
}
}
}
}
- gt 大于
- gte 大于等于
- lt 小于
- lte 小于等于
term 查询是直接通过倒排索引指定的词条进行查询的
关于分词:
term, 直接查询精确的值
match,会使用分词器解析(先分析文档,然后再通过分析的文档进行查询)
两个类型 text keyword
GET _analyze
{
"analyzer": "keyword",
"text": "zjzaki Java home"
}
GET _analyze
{
"analyzer": "standard",
"text": "zjzaki Java home"
}
高亮查询
GET zjzaki/user/_search
{
"query": {
"match": {
"name": "zjzaki"
}
},
"highlight": {
"fields": {
"name": {}
}
}
}
自定义搜索高亮条件
GET zjzaki/user/_search
{
"query": {
"match": {
"name": "zjzaki"
}
},
"highlight": {
"pre_tags": "<p class='key' style='color:red'>",
"post_tags": "</p>",
"fields": {
"name": {}
}
}
}
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果