摘要:
一、root object的理解 就是某个type对应的mapping json,包括properties,metadata(_id,_source,_type),settings(analyzer),其他settings(比如include_in_all等,下例中加黄色的就是root object) PUT /my_index { "mappings": { "... 阅读全文
摘要:
主要知识点 理解es中的type数据类型 一、type的理解 type是一个index中用来区分类似的数据的,但是可能有不同的fields,而且有不同的属性来控制索引建立、分词器。field的value值在底层的lucene中建立索引的时候,全部是opaque bytes类型,不区分类型的。lucene是没有type的概念的,在document中,实际上将type作为一... 阅读全文
摘要:
主要知识点 索引CUD 一、创建索引的语法 PUT /my_index { "settings": { ... any settings ... }, "mappings": { "type_one": { ... any mappings ... }, "type_two": { ... any mappings ...... 阅读全文
摘要:
主要知识点 修改分词器 手动创建分词器 一、修改分词器 1、默认的分词器standard,主要有以下四个功能 standard tokenizer:以单词边界进行切分 standard token filter:什么都不做 lowercase token filter:将所有字母转换为小写 stop token filer(默认被禁用):移除停用词... 阅读全文
摘要:
一、扫描和滚屏 scan(扫描)搜索类型是和scroll(滚屏)API一起使用来从Elasticsearch里高效地取回巨大数量的结果而不需要付出深分页的代价。 1、scroll(滚屏) 一个滚屏搜索允许我们做一个初始阶段搜索并且持续批量从Elasticsearch里拉取结果直到没有结果剩下。这有点像传统数据库里的cursors(游标)。 滚屏搜索会及时制作快... 阅读全文
摘要:
一、bouncing results成因及解决方案 bouncing results问题,两个document排序,field值相同;不同的shard上,可能排序不同;每次请求轮询路由到不同的replica shard上;每次页面上看到的搜索结果的排序都不一样。这就是bouncing result的问题,这个问题出现最多的地方就是timestamp进行排序 比如当你使用一... 阅读全文
摘要:
1、fetch phbase工作流程 The coordinating node identifies which documents need to be fetched and issues a multiGETrequest to the relevant shards. Each shard loads the documents andenrichesthem,... 阅读全文
摘要:
主要知识点: query phase步骤 query phase如何提升性能 一、query phase步骤 一次query phase一般包括以下三个步骤 The query phase consists of the following three steps: The client sends asearchrequest toNode... 阅读全文
摘要:
主要知识点 doc values 搜索的时候,要依靠倒排索引;在54小节中写到在聚合排序的时候如果仅仅依靠倒排索引的话是不能得出准确的结果的,需要依靠正排索引,所谓的正排索引,其实就是doc values。 在建立索引的时候,一方面会建立倒排索引,以供搜索用;一方面会建立正排索引,也就是doc values,以供排序,聚合,过滤等操作使用 doc values是... 阅读全文
摘要:
主要知识点: TF/IDF算法介绍 查看es计算_source的过程及各词条的分数 查看一个document是如何被匹配到的 一、算法介绍 relevance score算法,简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度。Elasticsearch使用的是 term frequency/inverse document ... 阅读全文