es使用笔记
启动es \es_demo\elasticsearch-7.15.2\bin bat http://localhost:9200/
启动kibana \es_demo\kibana-7.15.2-windows-x86_64\bin bat http://localhost:5601/ -> http://localhost:5601/app/dev_tools#/console
汉化kibana \es_demo\kibana-7.15.2-windows-x86_64\config Kibana.yml i18n.locale: "zh-CN" 重启kibana
ik分词器 elasticsearch-analysis-ik \es_demo\elasticsearch-7.15.2\plugins 下创建目录 ik 解压 重启es
添加词典 \es_demo\elasticsearch-7.15.2\plugins\ik\config 先建一个my.dic 把自己的词加进去 然后 IKAnalyzer.cfg.xml my.dic 重启es
启动 elasticsearch-head es_demo\elasticsearch-head> npm run start
注意:版本 es kibana ik 要统一
添加数据
PUT /test1/type1/1
{
"name":"郭饭",
"age":80,
"desc":"吃饼",
"tags":["书","跑步","男"]
}
**创建索引结构 和 理解 text 和 keyword **
PUT test_demo //index 名 要小写
{
"mappings":{
"properties": {
"name":{
"type": "text"
},
"desc":{
"type": "keyword"
}
}
}
}
//加数据
PUT test_demo/_doc/1
{
"name":"google name",
"desc":"google desc"
}
PUT test_demo/_doc/2
{
"name":"google name",
"desc":"google desc2"
}
GET _analyze //整体
{
"analyzer":"keyword",
"text":"google name"
}
GET _analyze //单个
{
"analyzer":"standard",
"text":"google name"
}
GET test_demo/_search //模糊有这个就好
{
"query": {
"term": {
"name": "google"
}
}
}
GET test_demo/_search //精确不会被拆分
{
"query": {
"term": {
"desc": "google desc2"
}
}
}
查询数据
//获取 id =1
GET /test1/type1/1
//指定name
GET /test1/type1/_search?q=name:小米
GET /test1/type1/_search
{
"query":{
"match": {
"name": "abc"
}
}
}
//获取指定字段
GET /test1/type1/_search
{
"query":{
"match": {
"name": "abc"
}
}
,
"_source": ["name","age"]
}
//排序
GET /test1/type1/_search
{
"query":{
"match": {
"name": "abc"
}
},
"sort":[
{
"age":{
"order":"desc"
}
}
]
}
//分页
GET /test1/type1/_search
{
"query":{
"match": {
"name": "abc"
}
},
"sort":[
{
"age":{
"order":"desc"
}
}
],
"from":0,
"size":1
}
//bool匹配 must 与and should 或or must_not 非not
GET /test1/type1/_search
{
"query":{
"bool": {
"must": [
{
"match": {
"name": "abc"
}
},{
"match": {
"age": 9
}
}
]
}
}
}
//过滤器 filter range 范围
eq : EQUAL等于
neq : NOT EQUAL不等于
gt : GREATER THAN大于
lt : LESS THAN小于
gte : GREATER THAN OR EQUAL 大于等于
lte : LESS THAN OR EQUAL 小于等于
GET /test1/type1/_search
{
"query":{
"bool": {
"must": [
{
"match": {
"name": "abc"
}
}
],
"filter": {
"range": {
"age": {
"gt": 5
}
}
}
}
}
}
//模糊匹配 tags 里面有男 和跑步的 有一个就匹配 多个 空格隔开
GET /test1/type1/_search
{
"query":{
"match": {
"tags": "跑步 男"
}
}
}
//分词查询
//term 通过倒排索引 精确匹配
//match 使用分词器解析
//text 会被分词器解析 keyword 不会被分词器解析
高亮查询
GET /test1/type1/_search //默认是em标签 "<em>跑</em><em>步</em>"
{
"query":{
"match": {
"tags": "跑步 男"
}
},
"highlight":{ //高亮
"fields": {
"tags": {} //字段
}
}
}
##自定义高亮显示##
GET /test1/type1/_search //自定义标签 pre_tags post_tags
{
"query":{
"match": {
"tags": "跑步 男"
}
},
"highlight":{
"pre_tags": "<p class ='key' style='color:red'",
"post_tags": "</p>",
"fields": {
"tags": {}
}
}
}
//显示
"highlight" : {
"tags" : [
"<p class ='key' style='color:red'跑</p><p class ='key' style='color:red'步</p>",
"<p class ='key' style='color:red'男</p>"
]
}
修改单个
POST /test1/type1/1/_update //_update
{
"doc":{
"name":"马牛逼"
}
}

浙公网安备 33010602011771号