1. 为帖子数据增加content字段 POST /forum/article/_bulk { "} } { "doc" : {"content" : "i like to write best elasticsearch article"} } { "} } { "doc" : {"content" : "i think java is the best programmin…
1. 为帖子增加标题字段 POST /forum/article/_bulk { "} } { "doc" : {"title" : "this is java and elasticsearch blog"} } { "} } { "doc" : {"title" : "this is java blog"} } { "} } { "doc&qu…
1. cross-fields搜索 一个唯一标识,跨了多个field.比如一个人,标识,是姓名:一个建筑,它的标识是地址.姓名可以散落在多个field中,比如first_name和last_name中,地址可以散落在country,province,city中.跨多个field搜索一个标识,比如搜索一个人名,或者一个地址,就是cross-fields搜索.初步来说,如果要实现,可能用most_fields比较合适.因为best_fields是优先搜索单个field最匹配的结果,cross-fie…
1.复合查询 复合查询能够组合其他复合查询或者查询子句,同时也可以组合各个查询的查询结果及得分,也可以从Query查询转换为Filter过滤器查询. 首先介绍一下Query Context和 Filter Context 1)Query Context查询主要关注的是文档和查询条件的匹配度,Query查询会计算文档和查询条件的相关度评分. 2)Filter Context过滤器主要关注文档是否匹配查询条件,并不关系文档和查询条件的匹配程度,也不会计算文档的相关度评分.过滤器查询速度比普通查询快,…
1. 普通match如何转换为term+should { "match": { "title": "java elasticsearch"}} 使用诸如上面的match query进行多值搜索的时候,es会在底层自动将这个match query转换为bool的语法,bool should,指定多个搜索词,同时使用term query { "bool": { "should": [ { "term&…
1. 召回率和精准度 比如你搜索一个java spark,总共有100个doc,能返回多少个doc作为结果,就是召回率,recall 精准度,比如你搜索一个java spark,能不能尽可能让包含java spark,或者是java和spark离的很近的doc,排在最前面,precision 直接用match_phrase短语搜索,会导致必须所有term都在doc field中出现,而且距离在slop限定范围内,才能匹配上 match phrase,proximity match,要求doc必须…
1. 近似匹配 什么是近似匹配,两个句子 java is my favourite programming language, and I also think spark is a very good big data system.java spark are very related, because scala is spark's programming language and scala is also based on jvm like java. match query,搜索j…
高亮搜索 ES 通过在查询的时候可以在查询之后的字段数据加上html 标签字段,使文档在在web 界面上显示的时候是由颜色或者字体格式的 GET /product/_search { "size": 200, "query": { "match_phrase": { "name": "上海" } }, "highlight": { "fields": { "…
在ES执行分布式搜索时,分布式搜索操作需要分散到所有相关分片,若一个索引有3个主分片,每个主分片有一个副本分片,那么搜索请求会在这6个分片中随机选择3个分片,这3个分片有可能是主分片也可能是副本分片,然后收集所有分片的查询结果.所以ES的搜索过程分为两个阶段,Query阶段和Fetch阶段:ES有两种搜索类型:query_then_fetch,dfs_query_then_fetch. 1.Query阶段 1)转发请求.在Query阶段客户端向ES节点发送,搜索请求,Coordinate节点接受…
开篇来自于经典的“保安的哲学三问”(你是谁,在哪儿,要干嘛) 问题一.ElasticSearch是什么?有什么用处? 答:截至2018年12月28日,从ElasticSearch官网(https://www.elastic.co/cn/products)上,得知:ElasticSearch是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展.高可靠性和管理便捷性而设计.用于搜索.分析和存储您的数据. 问题二.ElasticSearch的由来? 答:大约在2010年,一个叫Shay Bano…