ElasticSearch学习(二)——索引、文档简单操作 上

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: ElasticSearch学习(二)——索引、文档简单操作 上

image.png

1. 索引操作

1.1 创建索引

对比关系型数据库,创建索引就是创建数据库

创建索引:

在Postman中发PUT请求:http://127.0.0.1:9200/index_name

例子:

响应:

{
    "acknowledged": true, // 响应成功
    "shards_acknowledged": true,
    "index": "shoping"
}

1.2 获取索引信息

1. 获取指定索引信息:

在Postman中发GET请求:http//127.0.0.1:9200/index_name

例子:

响应:

{
    "shoping": {
        "aliases": {},
        "mappings": {},
        "settings": {
            "index": {
                "routing": {
                    "allocation": {
                        "include": {
                            "_tier_preference": "data_content"
                        }
                    }
                },
                "number_of_shards": "1",
                "provided_name": "shoping",
                "creation_date": "1647768782140",
                "number_of_replicas": "1",
                "uuid": "AnHCrE-2SSG45KV5k_TNUQ",
                "version": {
                    "created": "7150299"
                }
            }
        }
    }
}

2. 获取所有索引信息:

在Postman中发GET请求:http://127.0.0.1:9200/_cat/indices?v

  • 参数v,详细显示信息

响应如下:

1.3 删除索引

在Postman中发DELETE请求:http://127.0.0.1:9200/index_name

例子:

响应:

2. 文档操作

1.1 创建

ElasticSearch中的文档可以类比关系型数据库中的表数据,添加的数据格式为JSON格式。

在Postman中发起POST请求:http://127.0.0.1:9200/index_name/_doc

_doc并不指定,你创建文档的时候有可以_creat,过去之后仍然是_doc,因为在 ES 7.0 以后的版本 已经废弃文档类型Type了,一个 index 中只有一个默认的 type,即 _doc。

例子:

请求体内容:

{
    "title":"小米手机",
    "category":"小米",
    "images":"http://xxx.com/xm.jpg",
    "price":3999.00
}

响应:

这里只可以发起POST请求,如果发起PUT请求,会响应报错:

指定ID:

上面方法创建成功后会返回一个唯一的ID(这个是es随机生成的)

你可以指定id,当你指定了id之后,ElasticSearch就不会再自动生成了

在Postman中发起POST请求:http://127.0.0.1:9200/index_name/_doc/id

例子:

响应:

{
    "_index": "shopping",
    "_type": "_doc",
    "_id": "1001",
    "_version": 1,
    "result": "created",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "_seq_no": 1,
    "_primary_term": 1
}

1.2 查询

1.2.1主键查询

在Postman中发起GET请求:http://127.0.0.1:9200/index_name/_doc/id

文档创建成功后会返回一个唯一的id(ElasticSearch随机生成的,也可以是你指定的)

例子:

1001是上面创建时指定的id。

响应:

{
    "_index": "shopping",
    "_type": "_doc",
    "_id": "1001",
    "_version": 3,
    "_seq_no": 3,
    "_primary_term": 1,
    "found": true,
    "_source": {
        "title": "小米手机",
        "category": "小米",
        "images": "http://xxx.com/xm.jpg",
        "price": 3999.00
    }
}

如果查询的文档id不存在:

响应:

{
 "_index": "shopping",
 "_type": "_doc",
 "_id": "2001",
 "found": false
}

1.2.2 全查询

查询所有index中所有文档:

在Postman中发起GET请求:http://127.0.0.1:9200/index_name/_search

例子:

响应:

{
    "took": 4,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 2,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "TYu9pn8BfWqG58AR7Mzw",
                "_score": 1.0,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1001",
                "_score": 1.0,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            }
        ]
    }
}

1.2.3 条件查询

1.方法一:

在Postman中发起GET请求:http://127.0.0.1:9200/index_name/_search?q=param:value

但是在请求路径中添加额外的参数是比较麻烦的,而且这里的中文在请求路径中是容易出现乱码的,所以一般会调整为通过请求体来传递参数。

2.方法二(推荐):

在Postman中发起GET请求:http://127.0.0.1:9200/index_name/_search

请求体方式:

{
    "query":{ // query:查询
        "match":{ // match:全文检索匹配(1.2.9有详细讲) 
            "field1":"value1"
        }
    }
}
{
    "query":{ // query:查询
        "match_all":{ // match_all:全匹配
        }
    }
}

例子:

查询category字段为小米的文档

方法一查询:

方法二查询:

请求体:

{
    "query":{
        "match":{
            "category":"小米"
        }
    }
}

响应:

{
    "took": 44,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 4,
            "relation": "eq"
        },
        "max_score": 0.21072102,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "TYu9pn8BfWqG58AR7Mzw",
                "_score": 0.21072102,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1001",
                "_score": 0.21072102,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1002",
                "_score": 0.21072102,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1003",
                "_score": 0.21072102,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            }
        ]
    }
}

1.2.4 分页查询

上述条件查询可以通过这样匹配到全部文档:

{
    "query":{ // query:查询
        "match_all":{ // match_all:全匹配
        }
    }
}

但是这样查询数量量太多了,而我们只需要一部分数据,怎么办,一般我们我们会采用分页查询,这个时候我们的请求体内容就需要修改:

在Postman中发起GET请求,携带请求体:http://127.0.0.1:9200/index_name/_search

请求体:

{
    "query":{ // query:查询
        "match_all":{ // match_all:全匹配
        }
    },
    "from": 0, // 起始页
    "size": 1 // 每页文档数
}

例子

请求体:

{
    "query":{
        "match_all":{
        }
    },
    "from": 0,
    "size": 1
}

响应:

{
    "took": 1,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 4,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "TYu9pn8BfWqG58AR7Mzw",
                "_score": 1.0,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            }
        ]
    }
}

1.2.5 指定字段查询

但是感觉_source 里的字段有很多都是没啥用的,就可以通过指定字段来查询:

在Postman中发起GET请求,携带请求体:http://127.0.0.1:9200/index_name/_search

请求体:

{
    "query":{
        "match_all":{
        }
    },
    "from": 0,
    "size": 1,
    "_source":["field1","field2"] // 想要的字段
}

例子

只要文档的title字段

请求体:

{
    "query":{
        "match_all":{
        }
    },
    "from": 0,
    "size": 1,
    "_source":["title"]
}

响应:

{
    "took": 5,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 4,
            "relation": "eq"
        },
        "max_score": 1.0,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "TYu9pn8BfWqG58AR7Mzw",
                "_score": 1.0,
                "_source": {
                    "title": "小米手机" // 只有title字段
                }
            }
        ]
    }
}

1.2.6 查询排序

在Postman中发起GET请求,携带请求体:http://127.0.0.1:9200/index_name/_search

请求体:

{
    "query":{
        "match_all":{
        }
    },
    "sort":{
        "field":{
            "order":"desc" // desc:降序 || asc:升序
        }
    }
}

例子:

根据price价格进行升序排序:

请求体:

{
    "query":{
        "match_all":{
        }
    },
    "_source":["price"],
    "sort":{
        "price":{
            "order":"asc"
        }
    }
}

响应:

{
    "took": 3,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 6,
            "relation": "eq"
        },
        "max_score": null,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1004",
                "_score": null,
                "_source": {
                    "price": 3000.0
                },
                "sort": [
                    3000.0
                ]
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "TYu9pn8BfWqG58AR7Mzw",
                "_score": null,
                "_source": {
                    "price": 3999.0
                },
                "sort": [
                    3999.0
                ]
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1001",
                "_score": null,
                "_source": {
                    "price": 3999.0
                },
                "sort": [
                    3999.0
                ]
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1002",
                "_score": null,
                "_source": {
                    "price": 3999.0
                },
                "sort": [
                    3999.0
                ]
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1003",
                "_score": null,
                "_source": {
                    "price": 3999.0
                },
                "sort": [
                    3999.0
                ]
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1005",
                "_score": null,
                "_source": {
                    "price": 20000.0
                },
                "sort": [
                    20000.0
                ]
            }
        ]
    }
}

1.2.7 多条件查询

在Postman中发起GET请求,携带请求体:http://127.0.0.1:9200/index_name/_search

{
    "query":{
        "bool":{ // 多条件查询的话,需要参数bool
            "must":[// must:多个提交件必须同时成立 相当于and, should: 多条件不要求同时成立 相当于or
                { // 花括号中就是匹配规则,一个规则一对花括号
                    "match":{
                        "field1":"value1"
                    }
                },
                {
                    "match":{
                        "field2":value2
                    }
                }
            ]
        }
    }
}

例子

查询category为小米,且价格为3999.00 的文档:

请求体:

{
    "query":{
        "bool":{ // 多条件查询的话,需要参数bool
            "must":[// must:多个提交件必须同时成立
                { // 花括号中就是匹配规则,一个规则一对花括号
                    "match":{
                        "category":"小米"
                    }
                },
                {
                    "match":{
                        "price":3999.00
                    }
                }
            ]
        }
    }
}

响应:

{
    "took": 13,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 4,
            "relation": "eq"
        },
        "max_score": 1.1290771,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "TYu9pn8BfWqG58AR7Mzw",
                "_score": 1.1290771,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1001",
                "_score": 1.1290771,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1002",
                "_score": 1.1290771,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1003",
                "_score": 1.1290771,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            }
        ]
    }
}

1.2.8 范围查询

在Postman中发起GET请求,携带请求体:http://127.0.0.1:9200/index_name/_search

请求体:

注意

这个范围是在你 多条件查询 后结果的基础上进一步查找

{
    "query":{
        "bool":{
            "must":[
                {
                    "match":{
                        "field1":"value1"
                    }
                },
                {
                    "match":{
                        "field2":value2
                    }
                }
            ],
            "filter":{ // 过滤
                "range":{ // 范围
                    "field":{
                        "条件运算符": range // eg: gt:5000 大于5000的
                    }
                }
            }
        }
    }
}

例子

查询华为手机或者苹果手机价格大于5000的文档:

请求体:

{
    "query":{
        "bool":{
            "should":[
                {
                    "match":{
                        "category":"HuaWei"
                    }
                },
                {
                    "match":{
                        "category":"Apple"
                    }
                }
            ],
            "filter":{ // 过滤
                "range":{ // 范围
                    "price":{
                        "gt": 5000
                    }
                }
            }
        }
    }
}

响应

{
    "took": 1,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 2,
            "relation": "eq"
        },
        "max_score": 1.4417952,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1001",
                "_score": 1.4417952,
                "_source": {
                    "title": "苹果手机",
                    "category": "Apple",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 6599.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1006",
                "_score": 1.0630683,
                "_source": {
                    "title": "华为手机",
                    "category": "HuaWei",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 44999.00
                }
            }
        ]
    }
}

1.2.9 全文检索

回到上面的条件查询,

{
    "query":{
        "match":{
            "category":"米"
        }
    }
}

上面这个条件仍然会匹配到category字段为小米的数据,这是因为:


当保存文档数据的时候,ElasticSearch会将数据文字进行分词、拆解操作,并将拆解后的数据保存到倒排索引中去,因此,即使只使用文字的一部分,仍然可以查询到数据,这种方式我们称之为全文检索,而且ElasticSearch对查询内容同样会进行分词,在倒排索引中进行匹配。


例子:

全文检索"小华"

http://127.0.0.1:9200/shopping/_search

请求体:

{
    "query":{
        "match":{
            "title":"小华"
        }
    }
}

响应:

{
    "took": 2,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 6,
            "relation": "eq"
        },
        "max_score": 0.9444616,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1005",
                "_score": 0.9444616,
                "_source": {
                    "title": "华为手机",
                    "category": "HuaWei",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 5000.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1006",
                "_score": 0.9444616,
                "_source": {
                    "title": "华为手机",
                    "category": "HuaWei",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 44999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1007",
                "_score": 0.9444616,
                "_source": {
                    "title": "华为手机",
                    "category": "HuaWei",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3645.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "TYu9pn8BfWqG58AR7Mzw",
                "_score": 0.9444616,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1004",
                "_score": 0.9444616,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3000.00
                }
            },
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1003",
                "_score": 0.9444616,
                "_source": {
                    "title": "小米手机",
                    "category": "小米",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 3999.00
                }
            }
        ]
    }
}

小结:

可以看到 你查询的条件是"title":"小华",但是却查询到了小米和华为,这就是因为ES对查询内容进行了分词,分成了对倒排索引进行了匹配,从而匹配到了小米和华为。


1.2.10 完全匹配

1.2.9全文检索可以看出,你在1.2.3条件匹配的方式并不是完全匹配的。

在Postman中发起GET请求,携带请求体:http://127.0.0.1:9200/index_name/_search

请求体:

{
    "query":{
        "match_phrase":{ // 完全匹配
            "field":"value"
        }
    }
}

例子:

http://127.0.0.1:9200/shopping/_search

请求体:

{
    "query":{
        "match_phrase":{ // 完全匹配
            "title":"小华"
        }
    }
}

响应:

{
    "took": 9,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 0,
            "relation": "eq"
        },
        "max_score": null,
        "hits": []
    }
}

1.2.11 高亮查询

在Postman中发起GET请求,携带请求体:http://127.0.0.1:9200/index_name/_search

请求体:

{
    "query":{
        "match_phrase":{ // 完全匹配
            "field":"value"
        }
    },
    "highlight":{
        "fields":{
            "title":{}
        }
    }
}

例子:

在Postman中发起GET请求,携带请求体:http://127.0.0.1:9200/shopping/_search

请求体:

{
    "query":{
        "match_phrase":{ // 完全匹配
            "title":"华为手机"
        }
    },
    "highlight":{ // 高亮显示
        "fields":{
            "title":{}
        }
    }
}

响应:

{
    "took": 2,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 3,
            "relation": "eq"
        },
        "max_score": 2.00324,
        "hits": [
            {
                "_index": "shopping",
                "_type": "_doc",
                "_id": "1005",
                "_score": 2.00324,
                "_source": {
                    "title": "华为手机",
                    "category": "HuaWei",
                    "images": "http://xxx.com/xm.jpg",
                    "price": 5000.00
                },
                "highlight": {
                    "title": [
                        "<em>华</em><em>为</em><em>手</em><em>机</em>" // 高亮显示
                    ]
                }
            }
        ]
    }
}

1.2.12 聚合查询

如果想查询结果进行分组或者统计分析,就使用聚合查询:

在Postman中发起GET请求,携带请求体:http://127.0.0.1:9200/index_name/_search

请求体:

{
    "aggs":{ // 聚合操作
        "group_name": { // 聚合结果的名字,随意起名
            "terms":{ // 分组
                "field":"field1" // 分组字段
            }
        }
    }
}

例子-分组:

在Postman中发起GET请求,携带请求体:http://127.0.0.1:9200/shopping/_search

请求体:

{
    "aggs":{ // 聚合操作
        "price_group": { // 聚合结果的名字,随意起名
            "terms":{ // 分组 || terms:分组; avg:平均值
                "field":"price" // 分组字段
            }
        }
    },
    "size":0 // 舍弃原始数据
}
响应:
{
    "took": 6,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 8,
            "relation": "eq"
        },
        "max_score": null,
        "hits": []            // 原始数据
    },
    "aggregations": {
        "price_group": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": 3999.0,
                    "doc_count": 2
                },
                {
                    "key": 3000.0,
                    "doc_count": 1
                },
                {
                    "key": 3645.0,
                    "doc_count": 1
                },
                {
                    "key": 4555.0,
                    "doc_count": 1
                },
                {
                    "key": 5000.0,
                    "doc_count": 1
                },
                {
                    "key": 6599.0,
                    "doc_count": 1
                },
                {
                    "key": 44999.0,
                    "doc_count": 1
                }
            ]
        }
    }
}

例子-平均值

在Postman中发起GET请求,携带请求体:http://127.0.0.1:9200/shopping/_search

请求体:

{
    "aggs":{ // 聚合操作
        "price_avg": { // 聚合结果的名字,随意起名
            "avg":{ // 平均值
                "field":"price" // 分组字段
            }
        }
    },
    "size":0 // 舍弃
}
响应:
{
    "took": 4,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 8,
            "relation": "eq"
        },
        "max_score": null,
        "hits": []      // 原始数据
    },
    "aggregations": {
        "price_avg": {
            "value": 9474.5 // 平均值
        }
    }
}


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2月前
|
自然语言处理 大数据 应用服务中间件
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
大数据-172 Elasticsearch 索引操作 与 IK 分词器 自定义停用词 Nginx 服务
64 5
|
2月前
|
存储 分布式计算 大数据
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
大数据-169 Elasticsearch 索引使用 与 架构概念 增删改查
62 3
|
2月前
|
自然语言处理 Java 网络架构
elasticsearch学习三:elasticsearch-ik分词器的自定义配置 分词内容
这篇文章是关于如何自定义Elasticsearch的ik分词器配置以满足特定的中文分词需求。
141 0
elasticsearch学习三:elasticsearch-ik分词器的自定义配置 分词内容
|
20天前
|
存储 JSON 关系型数据库
Elasticsearch 索引
【11月更文挑战第3天】
34 4
|
2月前
|
JSON Java 网络架构
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
这篇文章介绍了如何使用Spring Boot整合REST方式来搭建和操作Elasticsearch服务。
130 4
elasticsearch学习四:使用springboot整合 rest 进行搭建elasticsearch服务
|
1月前
|
测试技术 API 开发工具
ElasticSearch7.6.x 模板及滚动索引创建及注意事项
ElasticSearch7.6.x 模板及滚动索引创建及注意事项
44 8
|
2月前
|
自然语言处理 搜索推荐 关系型数据库
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
这篇文章是关于Elasticsearch全文搜索引擎的学习指南,涵盖了基本概念、命令风格、索引操作、分词器使用,以及数据的增加、修改、删除和查询等操作。
27 0
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
|
2月前
|
Web App开发 JavaScript Java
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
这篇文章是关于如何使用Spring Boot整合Elasticsearch,并通过REST客户端操作Elasticsearch,实现一个简单的搜索前后端,以及如何爬取京东数据到Elasticsearch的案例教程。
205 0
elasticsearch学习五:springboot整合 rest 操作elasticsearch的 实际案例操作,编写搜索的前后端,爬取京东数据到elasticsearch中。
|
2月前
|
自然语言处理 Java Maven
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
这篇博客介绍了如何使用Spring Boot整合TransportClient搭建Elasticsearch服务,包括项目创建、Maven依赖、业务代码和测试示例。
109 0
elasticsearch学习二:使用springboot整合TransportClient 进行搭建elasticsearch服务
|
2月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
148 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。