当前位置: 首页 > news >正文

6 DSL_03地理信息查询相关性算分

1. 根据经纬度查询

(1) geo_bounding_box: 查询geo_point值落在某个矩形范围内的文档
get /hotel/_search
{"query":{"geo_bounding_box": {"location":{"top_left":{"lat":33.01,"lon":35.36},"bottom_right":{"lat":37.2,"lon":31.36}}}}
}

2 相关性算分

复合查询:将简单查询进行组合,实现更复杂的搜索逻辑,例如:function score: 算分函数查询,可以控制文档相关性算分,控制文档排名,例如百度竞价

使用,function score query,修改文档的相关性算分,根据新得到的算分排序。

get /hotel/_search
{"query":{"function_score": {"query":{"match": {"brand": "四季"}},"functions": [{//过来条件,符合条件的文档才会被重新算分"filter":{"term": {"id": "3"}},//算分函数"weight": 8}],//加权模式"boost_mode": "multiply"}}
}
(1) "query":{"match": {"brand": "四季"}}:原始查询条件,搜索文档并根据相关性打分.
(2) "filter":{"term": { "id": "3"}}:过滤条件,符合条件的文档才会被重新算分
(3) "weight":10, 算分函数,算分函数的结果称为function score,将来会与query score运算,得到新算分,常见的算分函数有:weight: 给一个常量值,作为函数结果field_value_factor: 用文档中的某个字段值作为结果random_score: 随机生成一个值,作为函数结果script_score: 自定义计算公式,公式结果作为函数结果
(4) "boost_mode": "multiply",加权模式,定义function score与query score的运算方式,例如:multiply(默认值,表示两者相乘)
{"took" : 6,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 1,"relation" : "eq"},"max_score" : 9.631783,"hits" : [{"_index" : "hotel","_type" : "_doc","_id" : "3","_score" : 9.631783,"_source" : {"address" : "洪武北路1号","brand" : "四季","business" : "新街口商圈","city" : "南京市玄武区","id" : 3,"location" : "33.35,131.36","name" : "四季","pic" : "http://www.bai.com/images/7.png","price" : 489,"score" : 8,"starName" : "3星"}}]}
}

相关文章:

  • std::function和std::bind函数
  • MyBatis-Plus入门教程(一)
  • Day11 —— 大数据技术之Spark
  • C#的膨胀之路:创新还是灭亡
  • npm i 报错 gifsicle pre-build test failed
  • 零撸广告创业项目:撸包小游戏对接广告联盟app开发
  • sh脚本模块笔记
  • C语言入门4-函数和程序结构
  • mysql 库存表 累计 sql语句 第一方法
  • Linux_软硬链接
  • RabbitMQ实践——交换器(Exchange)绑定交换器
  • ffmpeg 常用命令
  • 【鸿蒙】 模拟器运⾏
  • Java程序之动物声音“模拟器”
  • SpringMVC系列七: 手动实现SpringMVC底层机制-上
  • angular2 简述
  • axios 和 cookie 的那些事
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • isset在php5.6-和php7.0+的一些差异
  • Java,console输出实时的转向GUI textbox
  • Laravel Telescope:优雅的应用调试工具
  • MYSQL 的 IF 函数
  • npx命令介绍
  • Spark学习笔记之相关记录
  • vue学习系列(二)vue-cli
  • 第十八天-企业应用架构模式-基本模式
  • 模型微调
  • 前端面试之闭包
  • 设计模式走一遍---观察者模式
  • 十年未变!安全,谁之责?(下)
  • 算法---两个栈实现一个队列
  • 王永庆:技术创新改变教育未来
  • 微信公众号开发小记——5.python微信红包
  • 原生 js 实现移动端 Touch 滑动反弹
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • elasticsearch-head插件安装
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 进程与线程(三)——进程/线程间通信
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #etcd#安装时出错
  • ( 10 )MySQL中的外键
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (Matlab)使用竞争神经网络实现数据聚类
  • (pytorch进阶之路)扩散概率模型
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (五十)第 7 章 图(有向图的十字链表存储)
  • (转)IOS中获取各种文件的目录路径的方法
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能