Elasticsearch
文章平均质量分 85
Elasticsearch 深入浅出,ELKStack及Solr企业级搜索引擎实战。
夏目 "
一个对coding有独特追求的人。
展开
-
Elasticsearch 之(16)_filter执行原理深度剖析(bitset机制与caching机制)
(1)在倒排索引中查找搜索串,获取document listdate来举例word doc1 doc2 doc32017-01-01 * *2017-02-02 * *2017-03-03 * * *filter:2017-02-02到倒排索引中一找,发现2017-02-02对应的document list是doc2,doc3(2)为每个在倒排索引中搜索到的结果...原创 2018-05-22 17:14:50 · 1197 阅读 · 0 评论 -
Elasticsearch 之(15)深度图解剖析document写入原理(buffer,segment,commit)
(1)数据写入buffer(2)commit point(3)buffer中的数据写入新的index segment(4)等待在os cache中的index segment被fsync强制刷到磁盘上(5)新的index sgement被打开,供search使用(6)buffer被清空每次commit point时,会有一个.del文件,标记了哪些segment中的哪些document被标记为de...原创 2018-05-22 16:55:12 · 3801 阅读 · 5 评论 -
Elasticsearch 之(14)创建、修改以及删除索引
创建索引的语法PUT /my_index{ "settings": { ... any settings ... }, "mappings": { "type_one": { ... any mappings ... }, "type_two": { ... any mappings ... }, ... }}创建索引的示...原创 2018-05-22 16:50:15 · 4166 阅读 · 0 评论 -
Elasticsearch 之(13)lucene的相关度评分TF&IDF算法以及向量空间模型算法
算法介绍relevance score算法,简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度Elasticsearch使用的是 term frequency/inverse document frequency算法,简称为TF/IDF算法Term frequency:搜索文本中的各个词条在field文本中出现了多少次,出现次数越多,就越相关搜索请求:hello world...原创 2018-05-22 16:36:48 · 2951 阅读 · 0 评论 -
Elasticsearch 之(12)query string的分词,修改分词器以及自定义分词器
query string分词query string必须以和index建立时相同的analyzer进行分词query string对exact value和full text的区别对待 (第10节中详细阐述过)date:exact value_all:full text比如我们有一个document,其中有一个field,包含的value是:hello you and me,建立倒排索引我们要搜索...原创 2018-05-22 16:27:33 · 5746 阅读 · 0 评论 -
Elasticsearch 之(11)mapping引入
核心的数据类型stringbyte,short,integer,longfloat,doublebooleandatedynamic mapping (动态生成mapping)true or false --> boolean123 --> long123.45 --> double2017-01-01 --> date"hello world" --> stri...原创 2018-05-22 16:21:25 · 865 阅读 · 0 评论 -
Elasticsearch 之(10) 倒排索引核心原理、分词器、精确匹配与全文搜索
倒排索引核心原理doc1:I really liked my small dogs, and I think my mom also liked them.doc2:He never liked any dogs, so I hope that my mom will not expect me to liked him.分词,初步的倒排索引的建立word doc1 doc2I ...原创 2018-05-21 17:18:52 · 2819 阅读 · 0 评论 -
Elasticsearch 之(9) document 路由 、CRUD原理、bulk性能优化
document 路由 (1)document路由到shard上是什么意思?(2)路由算法:shard = hash(routing) % number_of_primary_shards举个例子,一个index有3个primary shard,P0,P1,P2每次增删改查一个document的时候,都会带过来一个routing number,默认就是这个document的_id(可能是手动指定,...原创 2018-05-18 16:17:34 · 884 阅读 · 0 评论 -
Elasticsearch 之(8)partial update 原理、 基于groovy使用、 内置乐观锁并发控制
partial update 原理 和 优点es,其实是有个内置的脚本支持的,可以基于groovy脚本实现各种各样的复杂操作基于groovy脚本,如何执行partial updatees scripting module,后面会详细讲解,这里就只是初步讲解一下PUT /test_index/test_type/11{ "num": 0, "tags": []}(1)内置脚本POST ...原创 2018-05-18 14:48:10 · 391 阅读 · 0 评论 -
Elasticsearch 之(7)并发冲突解决: 剖析悲观锁与乐观锁的并发控制方案
并发冲突问题剖析悲观锁与乐观锁两种并发控制方案基于_version进行乐观锁并发控制(1)_version元数据PUT /test_index/test_type/6{ "test_field": "test test"}{ "_index": "test_index", "_type": "test_type", "_id": "6&原创 2018-05-18 14:30:55 · 5107 阅读 · 0 评论 -
Elasticsearch 之(6)kibana嵌套聚合,下钻分析,聚合分析
计算每个tag下的商品数量GET /ecommerce/product/_search{ "aggs": { "group_by_tags": { "terms": { "field": "tags" } } }}将文本field的fielddata属性设置为true (正排索引 用于嵌套聚合查询, 后面会详细描述)PUT /ecommerce/_mappi...原创 2018-05-18 14:05:53 · 11835 阅读 · 0 评论 -
Elasticsearch 之(4)kibana集群健康检查,文档 CRUD
document数据格式面向文档的搜索分析引擎(1)应用系统的数据结构都是面向对象的,复杂的(2)对象数据存储到数据库中,只能拆解开来,变为扁平的多张表,每次查询的时候还得还原回对象格式,相当麻烦(3)ES是面向文档的,文档中存储的数据结构,与面向对象的数据结构是一样的,基于这种文档数据结构,es可以提供复杂的索引,全文检索,分析聚合等功能(4)es的document用json数据格式来表达pub...原创 2018-05-18 11:27:17 · 3834 阅读 · 0 评论 -
Elasticsearch 之(5)kibana多种搜索方式
query string search搜索全部商品:GET /ecommerce/product/_searchtook:耗费了几毫秒timed_out:是否超时,这里是没有_shards:数据拆成了5个分片,所以对于搜索请求,会打到所有的primary shard(或者是它的某个replica shard也可以)hits.total:查询结果的数量,3个documenthits.max_scor...原创 2018-05-18 11:45:07 · 12652 阅读 · 0 评论 -
Elasticsearch 之(3)安装、启动elasticsearch和kibana
elasticsearch-5.2.0.zip、 kibana-5.2.0-windows-x86.zip链接:https://pan.baidu.com/s/1buz2hZ0jBZJJlAE2Q4ei5w 密码:sw2o1、安装JDK,至少1.8.0_73以上版本,java -version2、下载和解压缩Elasticsearch安装包,目录结构3、启动Elasticsearch:bin\el...原创 2018-04-23 16:55:38 · 1786 阅读 · 0 评论 -
Elasticsearch 之(2)Elasticsearch核心概念
lucene和elasticsearch的前世今生lucene,最先进、功能最强大的搜索库,直接基于lucene开发,非常复杂,api复杂(实现一些简单的功能,写大量的java代码),需要深入理解原理(各种索引结构)elasticsearch,基于lucene,隐藏复杂性,提供简单易用的restful api接口、java api接口(还有其他语言的api接口)(1)分布式的文档存储引擎(2)分布...原创 2018-04-23 16:48:12 · 2336 阅读 · 0 评论 -
Elasticsearch 之(1) 初识Elasticsearch
什么是搜索?百度:我们比如说想找寻任何的信息的时候,就会上百度去搜索一下,比如说找一部自己喜欢的电影,或者说找一本喜欢的书,或者找一条感兴趣的新闻(提到搜索的第一印象)百度 != 搜索,这是不对的垂直搜索(站内搜索)互联网的搜索:电商网站,招聘网站,新闻网站,各种appIT系统的搜索:OA软件,办公自动化软件,会议管理,日程管理,项目管理,员工管理,搜索“张三”,“张三儿”,“张小三”;有个电商网...原创 2018-04-23 16:39:36 · 7819 阅读 · 1 评论