永久免费影视建站程序,沈阳推广网站,网站建设分享文章,东莞做好网络推广Kibana 是一个免费且开放的用户界面#xff0c;能够对 Elasticsearch 数据进行可视化操作#xff0c;从跟踪查询负载#xff0c;到理解请求如何流经整个应用#xff0c;都能轻松完成。
1.Kibana安装 注意要与ES版本保持一致
https://www.elastic.co/downloads/past-relea… Kibana 是一个免费且开放的用户界面能够对 Elasticsearch 数据进行可视化操作从跟踪查询负载到理解请求如何流经整个应用都能轻松完成。
1.Kibana安装 注意要与ES版本保持一致
https://www.elastic.co/downloads/past-releases#kibanahttps://www.elastic.co/downloads/past-releases#kibana 进入kibana-8.8.2的config文件夹配置修改kibana.yml配置文件。 第6、11、43行设置以下内容 server.port: 5601 server.host: 0.0.0.0 elasticsearch.hosts: [http://localhost:9200] 然后运行kibana.bat文件访问网页
http://localhost:5601http://localhost:5601
2.使用调试工具
2.1 点击management 2.2 点击Index Management进入索引管理的页面 2.3 点击dev tools,和ES进行交互 通过控制台发送请求ES。
GET /job/_mapping 3.Kibana操作
3.1 索引的操作
①创建索引 PUT goods ②查询索引 GET goods GET _cat/indices?v ③删除索引 DELETE goods ④创建索引并指定映射关系
PUT goods
{mappings: {properties: {id: {type: long},title: {type: text},brand: {type: keyword}}}
}
3.2 文档的操作
①添加文档
POST /goods/_doc/1
{id: 1001,title: mate40,brand: 华为
}
POST /goods/_doc/2
{id: 1002,title: mate50,brand: 华为
}
②查询文档 #查询文档 GET /goods/_doc/1 #查询所有文档 GET /goods/_search ③修改文档
#全量修改
PUT /goods/_doc/1
{id: 1000
}PUT /goods/_doc/1
{price: 4999
}
#局部修改
POST /goods/_update/1
{doc: {price: 5000}
}
④删除文档 DELETE /goods/_doc/2 4.match查询 Match查询是一种基于全文本的查询方法可以在一个或多个字段中搜索包含指定文本的文档。它会将查询字符串进行分词处理然后对每个词进行匹配从而找到所有匹配的文档。
4.1 添加测试数据 使用Elasticsearch中的Bulk工具批量生成数据。 ES中提供了批量导入接口Bulk允许通过以下格式快速导入构建好的文档.接口格式如下
PUT _bulk
{ index: { _index: job, _id: 1999 }}
{jid:1999,title:Java开发工程师,salary:{gte:20000,lte:30000},city:深圳,company:深圳大疆,description:...} index代表操作类型index重建索引 , create创建, delete删除 _index代表指向索引名 _id要操作的数据id
4.2 查询全部内容
GET /job/_search
{query: {match_all: {}},from: 0, #分页开始的位置默认为0size: 100 #期望获取的文档总数
}
4.3 非字符串精准查询
GET /job/_search
{query: {match: {jid: 1005}}
}
4.4 字符串模糊查询 查询title中包含开发的文档title映射定义的数据类型为text字段内容会被分析
GET /job/_search
{query: {match: {title: java}}
} 查询city包含深的文档
GET /job/_search
{query: {match: {city: 深}}
} 会发现查询结果是0条记录原因是我们定义mapping映射city属性的数据类型为keyword只能通过精确值搜索到。我们分别搜索深圳和北京可以得到对应的结果。
4.5 排序 按照jid降序排序
GET /job/_search
{sort: [{jid: desc}]
}
4.6 分页 查询5条数据
GET /job/_search
{],from: 0,size: 5
}
4.7 查询指定字段 通过_source指定需要查询哪些字段多个字段用[]括起来。
GET /job/_search
{_source: [jid,title]
}
4.8 多字段查询 查询company与description包含“金融”的数据。
GET /job/_search
{query: {multi_match: {query: 金融,fields: [company,description]}}
}
4.9 单字段boolean查询 boolean查询可以使用and或or 作为条件组合。 要求title同时出现java与架构师两个词才满足条件。
GET /job/_search
{query: {match: {title: {query: java 架构师,operator: and}}}
}
5.范围查询 查询薪水在5000~10000之间的数据。
GET /job/_search
{query: {range: {salary: [{gte:5000,lte:10000}]}}
} 只要和文档数据产生交集便会被选中。 6.bool字段复合查询 bool把各种查询条件通过must与、must_not非、should或的方式进行组合
GET /job/_search
{query: {bool: {must: [{match: {company: 咨询}}],should:[{match: {company: 金融}}],must_not:[{match: {company: 科技}}]}}
}
7.高亮 服务端搜索数据得到搜索结果将搜索到的关键字部分加上约定好的标签前端页面提前写好标签的CSS样式即可高亮。
在使用match查询的同时加上一个highlight属性 pre_tags前置标签 post_tags后置标签 fields需要高亮的字段
GET /job/_search
{query: {match: {description: springmvc}},highlight: {pre_tags: font colorred,post_tags: /font,fields: {description: {}}}
}
8.term查询 term主要用于分词精确匹配如字符串、数值、日期等未分词的数据。
GET /job/_search
{query: {term: {city: {value: 北京}}}
} 如下查询得到的结果是0条数据。原因就是ES默认采用Standard Analyzer分词策略。英文按单词切分中文字段分成一个一个汉字。
GET /job/_search
{query: {term: {title: {value: 工程师}}}
} 查看分词效果
GET _analyze
{analyzer: standard,text: java开发工程师
}
种分词策略对中文关键字搜索很不友好推荐IK 分词器