ES之DSL查询文档基础查询
创始人
2024-05-28 20:31:41
0

分类

query查询分类

总体规律就是逻辑性的,从外层的你干嘛,到下一层的查询类型,再到下一层的查询字段(如果需要的话)和然后是查询内容

查询所有

语法

get /索引库名/_serarch
{"query":{"查询条件":{//如果是查询所有match_all,不需要条件,否则以下不能为空}}
}

查询所有案例

// 查询所有
GET /indexName/_search
{"query": {"match_all": {}}
}

全文检索查询

match查询

GET /indexName/_search
{"query": {"match": {"FIELD(字段)": "TEXT(查询内容)"}}
}

查询多个字段的multi_match

GET /indexName/_search
{"query": {"multi_match": {//查询多个"query": "TEXT","fields": ["FIELD1", " FIELD12"]}}
}

精确查询

查询keyword,数值,日期等类型字段(精确值),不会对搜索条件进行分词

term:词条

// term查询
GET /indexName/_search
{"query": {"term": {"FIELD": {"value(这是固定的)": "VALUE(这是你要搜的词条)"}}}
}

range:范围

gt是大于(不等于),gte是大于等于(lte同理)

// range查询
GET /indexName/_search
{"query": {"range": {"FIELD": {"gte": 10,"lte": 20}}}
}

地理查询

根据经纬度查询(地理上进行查询附近的酒店/出租车)

geo_bounding_box经纬度范围查询

// geo_bounding_box查询
GET /indexName/_search
{"query": {"geo_bounding_box": {"FIELD": {"top_left": {"lat": 31.1,"lon": 121.5},"bottom_right": {"lat": 30.9,"lon": 121.7}}}}
}

geo_distance查询到指定中心点的举例小于某个距离值的所有位置

// geo_distance 查询
GET /indexName/_search
{"query": {"geo_distance": {"distance": "15km","FIELD": "31.21,121.5"}}
}

复合查询

将简单的查询组合起来,实现复杂的搜索逻辑

fuction score:算分函数查询,打分机制

tf算法

TF(词条频率) = 词条出现次数/文档中词条总数

TF-IDF算法

IDF(逆文档频率) = Log(文档总数/包含词条的文档总数)
score = ∑_i^n▒TF(词条频率) ∗ IDF(逆文档频率)

BM25算法

Score(Q,d) = ∑_i^n▒log(1+ N −n+0.5/n+0.5)∙  f_i /f_i+ k_1  ∙ (1 −b+  b ∙ dl/avgdl)

image-20230305102346922

复合查询案例

GET /hotel/_search
{"query": {"function_score": {"query": { "match": {"all": "外滩"} },//原始查询条件,搜索文档并根据相关性打分(query score"functions": [{"filter": {"term": {"id": "1"}},//过滤条件,符合条件的文档才会被重新算分"weight": 10/*算分函数,算分函数的结果称为function score ,将来会与query score运算,得到新算分,常见的算分函数有:weight:给一个常量值,作为函数结果(function score)field_value_factor:用文档中的某个字段值作为函数结果random_score:随机生成一个值,作为函数结果script_score:自定义计算公式,公式结果作为函数结果*/}],"boost_mode": "multiply"/*加权模式,定义function score与query score的运算方式,包括:multiply:两者相乘。默认就是这个replace:用function score 替换 query score其它:sum、avg、max、min*/}}
}
案例:给如家增加权重
GET /hotel/_search
{"query": {"function_score": {"query": {// 某查询条件 },"functions": [ // 算分函数{"filter": { // 满足的条件,品牌必须是如家"term": {"brand": "如家"}},"weight": 2 // 算分权重为2}],"boost_mode": "sum"}}
}

function score query定义的三要素是什么?

  • 过滤条件:哪些文档要加分

  • 算分函数:如何计算function score

  • 加权方式:function score 与 query score如何运算

相关内容

热门资讯

政策宣讲护航民企公平竞争 本报讯(记者付宇)日前,省市场监管局与省工商联联合市、区两级市场监管部门,共同举办公平竞争政策入企宣...
教育机构考公培训退费纠纷高发—... “在机构答应退费的1个多月后,我仅收到75%的培训费退款,剩余费用对方拒不退还。”近日,购买某教育机...
清风头条丨三调解纷绘新景:双牌... 红网时刻新闻通讯员 伍雯婧 周宏志 崔晓云 双牌报道 在永连公路与二广高速交会的青山秀水之间,双牌县...
全国首创!杭州这部健康促进条例... 作为国内最早开展健康城市建设的城市之一,浙江杭州是全国唯一两次入选健康城市建设试点的省会城市,其在健...
枣庄这家首饰店,其实是犯罪窝点... 一家不营业的商铺,每日资金流水不断,这背后,可能藏着不可告人的秘密。近日,在枣庄市公安局刑侦支队的指...
消费新观察 | 因欠费物业不让... 近日,家住天津市静海区团泊镇中骏云景台的市民申先生通过津云《消费新观察》栏目反映,由于欠缴物业费,在...
《全民阅读促进条例》 《全民阅读促进条例》 自2026年2月1日起施行 每年4月第四周为全民阅读活动周 构建全民覆盖,普惠...
福建公布重要条例!明年1月1日... 福建省人民代表大会常务委员会公告 〔十四届〕第五十号 《福建省高质量充分就业促进条例》已由福建省第十...
最高法和最高检联合发布第三批行... 今天,最高人民法院和最高人民检察院向社会联合发布第三批行政公益诉讼典型案例,涵盖农用地保护、农产品质...