elasticsearch 学习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 | elasticsearch 学习 https://www.cnblogs.com/qdhxhz/p/11493677.html es 基础概念: 索引index: 案由相同属性的文档集合 类型type: 索引可以定义一个或多个类型,文档必须属于一个类型 文档document: 文档是可以被索引的基本数据单位 3者的关系类似(索引=数据库,类型=表,文档=数据) 分片: 每个索引都有多个分片,每个分片都是一个Lucene索引 (如果一个索引量很大,就需要分片) 备份: 拷贝一份分片就完成了分片的备份 es API api基本格式: http:// < ip >:< port >/<索引>/<类型>/<文档id> 常用http动作词: GET/PUT/POST/DELETE es 基本用法: 非结构化创建: 关键词 mappings:{} 空数据就是非结构化 结构化创建: (注: 7.x 移除type类型 都统一改为_doc) { "settings": { "number_of_shards": 3, "number_of_replicas": 1 }, "mappings": { "properties": { "name": { "type": "text" }, "country": { "type": "keyword" }, "age": { "type": "integer" }, "date": { "type": "date", "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } } } 插入 post: 指定文档Id插入 url: http://127.0.0.1:9200/people/_doc/1 { "name": "wali2", "age": 40, "country": "china", "date": "2021-03-16" } 自动产生文档id插入 url: http://127.0.0.1:9200/people/_doc/ { "name": "wali2", "age": 40, "country": "china", "date": "2021-03-16" } 修改 post put: 直接修改文档: url: http://127.0.0.1:9200/people/_doc/1/_update { "doc": { "name": "谁是瓦力" } } 脚本修改文档: url: http://127.0.0.1:9200/people/_doc/1/_update { "_index": "people", "_type": "_doc", "_id": "1", "_version": 5, "result": "updated", "_shards": { "total": 2, "successful": 2, "failed": 0 }, "_seq_no": 5, "_primary_term": 1 } 删除 delete: 删除文档 请求方式: http://127.0.0.1:9200/people/_doc/1 删除索引(也会删除数据) http://127.0.0.1:9200/book 查询: 简单查询 get: http://127.0.0.1:9200/people/_doc/CzNtOXgB1o6hJzpfqHGJ _cat/count/people?v 查看数据条数 条件查询 post/get, 关键词query: http://127.0.0.1:9200/people/_doc/_search 1.{ "query": { "match_all": {} 返回全部数据 }, "from": 1, 起始返回数据 "size": 1 返回数据条数 } 2.{ "query": { "match": { "name": "wali2" 查询name包含wali2的数据 } } } 排序等. 聚合查询,关键词 aggs: http://127.0.0.1:9200/people/_doc/_search { "aggs": { "自定义聚合名称": { "terms": { "field": "age" 列名 } } } } 计算 { "aggs": { "xxx": { "stats": { min max "field": "age" } } } } 高级查询: 子条件查询: 特定字段查询特定值 Query context 全文本查询 针对文本类型数据 模糊匹配(会查询ElasticSearch,入门两个关键词) { "query": { "match": { "title": "ElasticSearch入门" } } } 习语匹配 把 match 改成 match_phrase 只查询 ElasticSearch入门 多个字段匹配 { "query": { "multi_match": { "query": "瓦力", "fields": ["author", "title"] 这两个字段中包含"瓦力"的 } } } 语法查询 查询包含 ElasticSearch 打发 / Python 的数据 { "query": { "query_string": { "query": "(ElasticSearch AND 打发) OR Python" } } } 查询"author", "title"中包含瓦力 或者 xxx { "query": { "query_string": { "query": "瓦力 OR xxx", "fields": ["author", "title"] } } } 字段级别查询 针对结构化数据,如数字,日期等 { 查询年龄100的 "query": { "term": { "age": 100 } } } { 查询年龄大于10 且 小于200的数据(e 是等于包含) "query": { "range": { "age": { "get": 10, "lte": 200 } } } } Filter context : 在查询中,只判断该文档是否满足条件,只有yes,no { "query": { "bool": { "filter": { "term": { "age": 100 } } } } } 复合条件查询: 以一定的逻辑组合子条件查询 elasticsearch 目录结构: bin 启动文件目录 config 配置文件目录 elasticsearch.yml # elasticsearch 和 head 可视化插件跨域问题 (启动不显示es) http.cors.enabled: true http.cors.allow-origin: "*" # 集群配置 cluster.name: wali # 集群名字(集群名称是一样的) node.name: master # 节点名称 node.master: true # master指挥官主节点 # 设置主机ip network.host: 127.0.0.1 # 端口 http.port: 8200 # 设置主节点ip(就是主节点指挥官的ip) discovery.zen.ping.unicast.hosts: ["127.0.0.1"] lib 第三方库目录 modules 模块目录 plugins 第三方插件目录 head 插件(可视化插件): 颜色: 绿色(健康) 黄色(不健康) 红色(很差) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义