ElasticSearch
小毛贼_哪里逃
这个作者很懒,什么都没留下…
展开
-
ElasticSearch--使用java api增删改查
依赖 <dependencies> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.2.2&...原创 2020-03-10 14:46:08 · 162 阅读 · 0 评论 -
ElasticSearch--document写入流程
原创 2020-03-09 17:47:23 · 93 阅读 · 0 评论 -
ElasticSearch--scroll+alias别名实现生产环境上零停机切换索引
1 发送scoll请求GET accounts/person/_search?scroll=1m{ "query": { "match_all": {} }, "size": 2, "sort": ["_doc"]}会返回一个_scroll_id2 使用_scroll_id查询第二轮结果GET _search/scroll{ "scroll":"1m...原创 2020-03-09 14:27:23 · 241 阅读 · 0 评论 -
ElasticSearch--TF/IDF算法
查看搜索时所使用的算法信息 GET /accounts/person/_search?explain 查看一个文档匹配时所用的算法信息 GET /accounts/person/2/_explain{ "query":{ "match":{ "desc":"good" } }}...原创 2020-03-09 13:42:37 · 215 阅读 · 0 评论 -
ElasticSearch--使用字符串排序
无原创 2020-03-08 20:54:35 · 675 阅读 · 2 评论 -
ElasticSearch--validate验证搜索是否合法
验证通过 GET /accounts/person/_validate/query?explain{ "query":{ "match": { "user": "lisi" } }}返回:{ "valid": true, "_shards": { "total": 1, "successful": 1, "fa...原创 2020-03-08 20:37:37 · 294 阅读 · 0 评论 -
ElasticSearch--分词器
分词过程: character filter: 分词前的预处理,比如过滤html标签,&符号变为单词and等操作 tokenizer: 分词,把一句话以某种方式分割成多个单词或词语 token filter: 对单词进行normalization操作,比如大小写转换、同义词转换、单复数转换、时态转换、stop word过滤、无意义单词过滤等 完成对处理过的单词或词语进行倒排...原创 2020-03-08 16:52:49 · 161 阅读 · 0 评论 -
ElasticSearch--mapping元数据
查看语法: GET index/type/_mapping或者: GET index/_mapping/type 示例 GET accounts/person/_mapping返回:{ "accounts": { "mappings": { "person": { "properties": { "age"...原创 2020-03-08 16:12:11 · 204 阅读 · 0 评论 -
ElasticSearch--query string语法和_all metadata
query string语法 GET index/type/_search?q=field:keyword:返回指定index下指定type下指定field中包含keyword的数据 GET index/type/_search?q=+field:keyword:返回指定index下指定type下指定field中一定存在keyword的数据 GET index/type/_searc...原创 2020-03-08 15:56:18 · 207 阅读 · 0 评论 -
ElasticSearch--deep paging问题
语法:GET _search?size=3&from=1size:显示应该返回的结果数量,默认是10。 from:显示查询数据的偏移量,即应该跳过的初始结果数量,默认是0。 deep paging问题 当需要分页返回的时候,每个shard都需要返回给 coordinate node的数据量为from+size条数据,coordinate node会收到number_o...原创 2020-03-08 15:28:40 · 132 阅读 · 0 评论 -
ElasticSearch--multi-index和multi-type搜索模式
/_search:搜索所有index下的所有type下的所有数据 /index/_search:搜索指定index下的所有type下的所有数据 /index,index1/_search: 搜索指定的多个index下所有type下的所有数据 /index*/_search: 搜索指定匹配符下的index下所有type下的所有数据 /index/type/_search: 搜索指定inde...原创 2020-03-08 15:00:38 · 227 阅读 · 0 评论 -
ElasticSearch--document增删改查内部原理
何为document路由? 就是当增删改查一个document的时候,es应该到哪个shard中去查找 路由算法: 目标shard=hash(routing number)%number_of_primary_shardsrouting number默认为document的_id,也可以在发送请求的时候,手动指定一个,比如:PUT /index/type/id?rout...原创 2020-03-08 13:02:01 · 176 阅读 · 0 评论 -
ElasticSearch--bulk批量增删改
bulk request会加载到内存中,如果太大的话性能也会下降。一般可以尝试逐渐增加,大小在5至15MB之间寻找平衡点 语法:除delete操作外,每一个操作需要两个json串,语法如下: {"action":{"metadata"}}{"data"}其中action有以下选项:delete:删除一个文档,只要1个json串 create: PUT /index/t...原创 2020-03-08 11:32:12 · 848 阅读 · 0 评论 -
ElasticSearch--mget批量查询
主要优势就是减少请求次数,从而减轻了网络开销,提高性能,推荐! 请求不同index,不同type下的document GET _mget{ "docs":[ { "_index":"accounts", "_type":"person", "_id":1 }, { "_index":"accounts",...原创 2020-03-08 10:46:35 · 101 阅读 · 0 评论 -
ElasticSearch--使用groovy脚本
内置脚本实现自增操作 1 PUT accounts/person/12{ "age":0}2 GET accounts/person/12返回:{ "_index": "accounts", "_type": "person", "_id": "12", "_version": 2, "found": true, "_source": { ...原创 2020-03-07 21:16:38 · 935 阅读 · 0 评论 -
ElasticSearch--基于_version进行乐观锁并发控制
PUT accounts/person/6{ "user": "lisi", "age":50, "salary":6000, "title": "业务员", "desc": "数据库管理"}返回:{ "_index": "accounts", "_type": "person", "_id": "6", "_version": 1, "resul...原创 2020-03-07 18:59:59 · 2738 阅读 · 0 评论 -
ElasticSearch--聚合分析(group by, avg,sort等)
分组聚合:以tag分组,并计算每个分组下的数量 GET accounts/person/_search{ "size": 0, "aggs": {//aggregations的简写,聚集,集合 "group_by_tag": { "terms": { "field": "tag" } } }}返回:{ "t...原创 2020-03-07 18:24:16 · 1475 阅读 · 0 评论 -
ElasticSearch--入门操作(CRUD)
基本概念 1 Node 与 ClusterElastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例。单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。查看当前集群的健康状态:GET _cluster/health{ "cluster_name": "elasticsear...原创 2020-03-07 16:00:15 · 210 阅读 · 0 评论 -
ElasticSearch安装+Kibana安装
安装前置条件:1 jdk>1.8.0_722 下载链接:https://pan.baidu.com/s/1uSy8AxnRUoVbY6xJbuklrA 密码:x5bi ElasticSearch安装 1 解压: tar -zxvf elasticsearch-5.2.0.tar.gz2 启动:sh bin/elasticsearch3 查看是否启动成功:h...原创 2020-03-07 14:20:42 · 93 阅读 · 0 评论 -
ElasticSearch--概念
ElasticSearch简介 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端...原创 2020-03-07 13:20:15 · 137 阅读 · 0 评论