职位查询案例
一、查询职位索引库中的一条数据
format:表示指定返回的数据类型
// 1. 查询职位信息GET /_sql?format=txt{ "query": "SELECT * FROM job_idx limit 1"}
复制代码
除了 txt 类型,Elasticsearch SQL 还支持以下类型
二、将 SQL 转换为 DSL
GET /_sql/translate{ "query": "SELECT * FROM job_idx limit 1"}
复制代码
三、职位 scroll 分页查询
1、第一次查询
// 2. scroll分页查询GET /_sql?format=json{ "query": "SELECT * FROM job_idx", "fetch_size": 10}
复制代码
fetch_size 表示每页显示多少数据,而且当我们指定 format 为 Json 格式时,会返回一个 cursor ID
2、第二次查询
GET /_sql?format=json{ "cursor": "5/WuAwFaAXNARFhGMVpYSjVRVzVrUm1WMFkyZ0JBQUFBQUFBQUFJZ1dUM054VUZaMk9YVlJWalowYkVJeFowUkdVak10ZHc9Pf8PCgFmBGFyZWEBBGFyZWEBB2tleXdvcmQBAAABZgNjbXABA2NtcAEHa2V5d29yZAEAAAFmA2VkdQEDZWR1AQdrZXl3b3JkAQAAAWYDZXhwAQNleHABB2tleXdvcmQBAAABZgJpZAECaWQBBGxvbmcAAAABZgJqZAECamQBBHRleHQAAAABZghqb2JfdHlwZQEIam9iX3R5cGUBB2tleXdvcmQBAAABZgJwdgECcHYBB2tleXdvcmQBAAABZgZzYWxhcnkBBnNhbGFyeQEHa2V5d29yZAEAAAFmBXRpdGxlAQV0aXRsZQEEdGV4dAAAAAL/Aw=="}
复制代码
3、清除游标
POST /_sql/close{ "cursor": "5/WuAwFaAXNARFhGMVpYSjVRVzVrUm1WMFkyZ0JBQUFBQUFBQUFJZ1dUM054VUZaMk9YVlJWalowYkVJeFowUkdVak10ZHc9Pf8PCgFmBGFyZWEBBGFyZWEBB2tleXdvcmQBAAABZgNjbXABA2NtcAEHa2V5d29yZAEAAAFmA2VkdQEDZWR1AQdrZXl3b3JkAQAAAWYDZXhwAQNleHABB2tleXdvcmQBAAABZgJpZAECaWQBBGxvbmcAAAABZgJqZAECamQBBHRleHQAAAABZghqb2JfdHlwZQEIam9iX3R5cGUBB2tleXdvcmQBAAABZgJwdgECcHYBB2tleXdvcmQBAAABZgZzYWxhcnkBBnNhbGFyeQEHa2V5d29yZAEAAAFmBXRpdGxlAQV0aXRsZQEEdGV4dAAAAAL/Aw=="}
复制代码
四、职位全文检索
1、需求
检索 title 和 jd 中包含 hadoop 的职位
2、MATCH 函数
在执行全文检索时,需要使用到 MATCH 函数
MATCH( field_exp, constant_exp [, options])
复制代码
field_exp:匹配字段
constant_exp:匹配常量表达式
3、实现
GET /_sql?format=txt{ "query": "select * from job_idx where MATCH(title, 'hadoop') or MATCH(jd, 'hadoop') limit 10"}
复制代码
评论