《从Lucene到Elasticsearch:全文检索实战》 基于es5较新,国内的
《深入理解Elasticsearch》 基于es0.9比较老,国外的
《Elasticsearch技术解析与实战》 基于es2.2和es5较新,国内的
《Elasticsearch in Action》 国外的
《Elasticsearch 权威指南》 国外的
https://www.cnblogs.com/dreamroute/p/8484457.html
http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html
https://www.yiibai.com/elasticsearch/elasticsearch-getting-start.html
https://es.xiaoleilu.com/
https://www.elastic.co/guide/cn/elasticsearch/guide/current/_how_to_read_this_book.html
https://blog.csdn.net/napoay/article/details/78698226?utm_source=gold_browser_extension
https://blog.csdn.net/laoyang360/article/details/78554610
https://cloud.tencent.com/developer/article/1106755
ES的关键是构建倒排索引;搜索(Lucene)是按照关键词查询的,因此需要解析句子得到关键词;
首先需要分词;然后去掉一些无意义的词,如a、an、the以及‘的’等;然后统一大小写如he、HE;
甚至还原词根,如livs、lived变为live;去掉标点符号;这样就得到一个句子的所有关键词;
(以上由Lucene的Analyzer类执行;)
有了关键词就能构造倒排索引;即根据关键词找到所在的文章;
也可以看成一个‘关键词-文章’矩阵,这就类似LSA(潜在语义分析)了;(有一个不同是,es或倒排索引需要考虑关键词的出现次数和位置;)
(插入的过程就是构建倒排索引的过程?)
(es或倒排索引没有用到词向量?)
(关键词按字典顺序排序,Lucene没有使用B树结构!)
(Lucene使用三个文件构造倒排索引:词典文件、频率文件、位置文件;其中词典文件除了关键词,还保留指向频率文件和位置文件的指针)
(Lucene考虑到关键词能同时出现在标题、文章、url多种情况,使用field字段记录该信息,field字段也记录在词典文件中;每个关键词有一个field信息)
创建索引后,可以改变副本的数量,但不能改变分片的数量;
分片是有存储大小限制的,大概是Integer.max_value-128;
Relational DB -> Databases -> Tables -> Rows ->