您现在的位置是:主页 > news > 如何查看一个网站是什么程序cms做的/河南省干部任免最新公示
如何查看一个网站是什么程序cms做的/河南省干部任免最新公示
admin2025/6/15 11:24:34【news】
简介如何查看一个网站是什么程序cms做的,河南省干部任免最新公示,sae wordpress博客,wordpress搜索内容文章目录第一章: mapping(类似于sql的数据结构)1.1 数据类型说明1.2 内置类型设置对应的属性以及类型第二章 ES实例化基本操作2.1 准备测试数据2.1.1 删除 zhuge_test (类似sql中的清空数据表)2.1.2 创建新的mapping (类似sql的建表)2.1.3 准备查询所需要的数据(类似sql中的ins…
如何查看一个网站是什么程序cms做的,河南省干部任免最新公示,sae wordpress博客,wordpress搜索内容文章目录第一章: mapping(类似于sql的数据结构)1.1 数据类型说明1.2 内置类型设置对应的属性以及类型第二章 ES实例化基本操作2.1 准备测试数据2.1.1 删除 zhuge_test (类似sql中的清空数据表)2.1.2 创建新的mapping (类似sql的建表)2.1.3 准备查询所需要的数据(类似sql中的ins…
3.3.2 嵌套查询–dsl语句中
文章目录
- 第一章: mapping(类似于sql的数据结构)
- 1.1 数据类型说明
- 1.2 内置类型设置对应的属性以及类型
- 第二章 ES实例化基本操作
- 2.1 准备测试数据
- 2.1.1 删除 zhuge_test (类似sql中的清空数据表)
- 2.1.2 创建新的mapping (类似sql的建表)
- 2.1.3 准备查询所需要的数据(类似sql中的insert)
- 2.2 基本操作练起来
- 2.2.1 match 查询 对输入的进行分词
- 2.2.2 term 查询 对传入的值不会做任何处理 精准匹配型
- 2.2.3 terms查询 查询多个 其中一个满足 就会返回数据
- 2.2.4 控制查询的返回数量 -- 用于分页
- 2.2.4 match_all 查询
- 2.2.6 match_phrase查询-- 短语查询
- 2.2.7 multi_match查询--可以指定多个字段
- 2.2.8 返回指定的字段
- 2.2.9 查询并对结果排序操作
- 2.2.10 通用的范围查询--range
- 2.2.11 rang范围时间查询中的now 为当前时间
- 2.2.12 wildcard 查询 --模糊查询
- 第三章 进阶操作
- 3.1 部分练习
- 3.2 多条件组合操作
- 3.2 简单的过滤查询实例
- 3.2.1 简单的filter查询
- 3.2.2 查询多个值
- 3.3 比较复杂的过滤组合查询方式
- 3.3.1 must_not 不等于多个的情况 格式写法
- 3.3.2 嵌套查询--dsl语句中 `bool套bool` 为嵌套查询
- 3.3.3 过滤空和非空的测试数据
- 3.3. 4 处理null 空值的方法
- 3.3.5 查询为null的数据
第一章: mapping(类似于sql的数据结构)
- string类型: test, keyword类型 string类型在es5开始废弃使用
- 数字类型: long integer short byte double float
- 日期类型: date 可以解析python中的date_time
- bool类型: boolean True false yes no 都可以进行解析
- binary类型: binary 二进制类型 不会进行检索
- 复杂类型: object, nested (1.1 将详细说明)
- geo类型: geo-point, geo-shape 地理位置经纬度类型
- 专业类型: ip, competion(做搜索建议)
es 会对设置字符串的字段text 进行分析, 分词处理. 而keyword 不会进行分词,必须进行全部匹配
1.1 数据类型说明
- object 类型介绍
{"a":"b","c":"d","e":{"f":"g""h":"j"}
}
对象 或者类似python的字典类型 称为object类型
- nested类型
{"a":"b","c":"d","e":[{"f":"g","h":"j"},{"f":"g","h":"j"}]
}
数组或者称为列表这样的为nested类型
1.2 内置类型设置对应的属性以及类型
属性 | 概述 | 适合类型 |
---|---|---|
store | 值为yes标识存储,为no表示不存储,默认为no | all |
index | yes表示分析,no表示不分析,默认值为true | string |
null_value | 如果字段为空,可以设置一个默认值,NA | all |
analyzer | 可以设置索引和搜索时用的分析器,默认使用的是 standard分析器, 还可以使用whitespace、simple, english | all |
include_in_all | 默认es为每个文档定义一个特殊域_all,它的作用是让每个字段被搜索到,如果不想某个字段被搜索到,可以设置为false | all |
format | 时间格式字符串的模式 | date |
第二章 ES实例化基本操作
2.1 准备测试数据
2.1.1 删除 zhuge_test (类似sql中的清空数据表)
DELETE zhuge_test
2.1.2 创建新的mapping (类似sql的建表)
PUT zhuge_test
{"settings":{"index":{"number_of_shards":"1","number_of_replicas":"1"}},"mappings":{"job":{"properties":{"title":{"store":true, # 本文2.2.8 里有说明, 默认为false"type":"text"},"company_name":{"store":true,"type":"keyword"},"desc":{"type":"text"},"comments":{"type":"integer"},"add_time":{"type":"date","format":"yyyy-MM-dd"}}}}
}
- 查看数据, 类似于sql中的
select *
GET zhuge_test/_mapping
2.1.3 准备查询所需要的数据(类似sql中的insert)
POST zhuge_test/job # 向ES提交数据, 可以理解为接口的post请求表单提交
{"title": "python django 开发工程师","company_name": "美团科技有限公司","desc":"对django的概念熟悉, 熟悉python基操","comments":20,"add_time":"2019-1-19"
}
POST zhuge_test/job
{"title": "python scrapy redis 分布式爬虫基本","company_name": "百度科技有限公司","desc":"对django的概念熟悉, 熟悉python基操","comments":5,"add_time":"2019-1-18"
}
POST zhuge_test/job
{"title": "elasticsearch打造搜索引擎","company_name": "阿里巴巴科技有限公司","desc":"熟悉推介引擎的原理以及算法, 掌握C语言","comments":15,"add_time":"2016-1-18"
}
POST zhuge_test/job
{"title": "Python打造推介引擎引擎","company_name": "阿里巴巴科技有限公司","desc":"熟悉推介引擎的原理以及算法, 掌握C语言","comments":60,"add_time":"2016-10-18"
}
GET zhuge_test/_search # 获取数据, 可以理解为接口的get请求数据
2.2 基本操作练起来
2.2.1 match 查询 对输入的进行分词
select * from table where title regexp 'python'
近似操作
GET zhuge_test/job/_search
{"query": {"match": {"title": "python"}}
}
2.2.2 term 查询 对传入的值不会做任何处理 精准匹配型
select * from table where company_name= '阿里巴巴科技有限公司'
近似操作
{"query": {"term": {"company_name": "阿里巴巴科技有限公司"}}
}
2.2.3 terms查询 查询多个 其中一个满足 就会返回数据
select * from table where title regexp '工程师|django|系统'
近似操作
GET zhuge_test/job/_search
{"query": {"terms":{"title":["工程师","django","系统"]}}
}
2.2.4 控制查询的返回数量 – 用于分页
select * from table where title regexp 'python' limit 0, 2
近似操作
GET zhuge_test/job/_search
{"query": {"match": {"title": "python"}},"from":0,"size":2
}
2.2.4 match_all 查询
select * from table
近似操作
GET zhuge_test/job/_search
{"query": {"match_all": {}}
}
2.2.6 match_phrase查询-- 短语查询
- 传入词会进行分析并解析为数组,且必须同时满足数组所有的词才会返回结果。slop 则是传入词与词直接的距离
- 暂无近义sql
GET zhuge_test/job/_search
{"query":{"match_phrase":{"title": {"query": "python开发","slop": 1}}}
}
2.2.7 multi_match查询–可以指定多个字段
- 比如查询title 和desc 这两个字段里包含python 的关键词文档 – 可以检索多个字段出现的查询词
title^3
是我们认为在title
里出现的关键词会比desc
里多 现设置了title
比desc
大3倍的权重值
GET zhuge_test/job/_search
{"query": {"multi_match": {"query": "python","fields": ["title^3","desc"]}}
}
2.2.8 返回指定的字段
- 使用关键字:
stored_fields
在数组中设置要返回的字段即可,但必须在建立mapping 映射的时候该字段是store
为true
的字段,如没有在该字段添加该属性 则没有返回值, 本文2.1.2 有演示
GET zhuge_test/job/_search
{"stored_fields":["title","company_name"],"query": {"match":{"title":"python"}}
}
2.2.9 查询并对结果排序操作
GET zhuge_test/job/_search
{"query":{"match_all":{}},"sort":[{"comments":{"order":"desc"}
}]
}
2.2.10 通用的范围查询–range
gte
: 大于等于gt
大于lte
小于等于lt
小于- 可设置该字段的权重
boost
: 2
GET zhuge_test/job/_search
{"query": {"range":{"comments": {"gte": 10,"lte": 20,"boost": 1}}}
}
2.2.11 rang范围时间查询中的now 为当前时间
GET zhuge_test/job/_search
{"query": {"range": {"add_time": {"gte": "2016-04-01","lte": "now"}}}
}
2.2.12 wildcard 查询 --模糊查询
- 支持查询字符串里有通配符
boost
可不设置表名该字段的权重值
GET zhuge_test/job/_search
{"query": {"wildcard": {"title": {"value": "pyth*n","boost": 2}}}
}
第三章 进阶操作
3.1 部分练习
POST zhuge/testdb/_bulk
{"index":{"_id":1}}
{"salary":10, "title":"python"}
{"index":{"_id":2}}
{"salary":20, "title":"scrap"}
{"index":{"_id":3}}
{"salary":30, "title":"Django"}
{"index":{"_id":4}}
{"salary":40, "title":"Elasticsearch"}
DELETE zhuge
POST zhuge/testdb
{"settings":{"index":{"number_of_shards":"1","number_of_replicas":"1"}}
}
GET zhuge/_settings
GET zhuge/testdb/_search
3.2 多条件组合操作
- 用bool查询包括
must
,should
,must_not
,filter
来完成格式如下
bool:{"filter":[], 对字段进行过滤同时不参与打分"must":[], 数组里的所有查询都必须满足"should":[],数组里的查询满足一个和多个都可以"must_not":{}, 数组里的查询一个都不能满足
}
3.2 简单的过滤查询实例
3.2.1 简单的filter查询
GET zhuge/testdb/_search
{"query":{"bool":{"must":{"match_all":{}},"filter": {"term": {"salary": "20"}}}}
}
int
类型不进行分析和分词 也可以用match
查询
3.2.2 查询多个值
GET zhuge/testdb/_search
{"query": {"bool":{"must":{"match_all":{}},"filter":{"terms":{"salary":[10,20]}}}}
}
3.3 比较复杂的过滤组合查询方式
- 例如要查询薪资等于20K或者工作为python的工作, 并且排除薪资为30k的
should = sql or
GET zhuge/testdb/_search
{"query": {"bool": {"should": [{"term": {"salary": 20}},{"term":{"title": "python"}}],"must_not":{"term":{"salary":30}}}}
}
3.3.1 must_not 不等于多个的情况 格式写法
GET zhuge/testdb/_search
{"query": {"bool": {"should": [{"term": {"salary": 20}},{"term":{"title": "python"}}],"must_not":[{"term":{"salary": 30}},{"term":{"salary":10}}]}}
}
3.3.2 嵌套查询–dsl语句中 bool套bool
为嵌套查询
- sql语句表达式
select * from testdb where title="python" or (title = "django" and salary=30)
- DSL语句表达式
GET zhuge/testdb/_search
{"query": {"bool": {"should": [{"term": {"title": "python"}},{"bool": {"must":[{"term": {"title":"django"}},{"term":{"salary":30}}]}}]}}
}
3.3.3 过滤空和非空的测试数据
POST zhuge2/testdb/_bulk
{"index":{"_id":"1"}}
{"tags":["search"]}
{"index":{"_id":"2"}}
{"tags":["search","python"]}
{"index":{"_id":3}}
{"tags":["some data"]}
{"index":{"_id":4}}
{"tags":null}
{"index":{"_id":5}}
{"tags":["search", null]}
GET zhuge2/_settings
GET zhuge2/testdb/_search
POST zhuge2/testdb
{
“settings”:{
“index”:{
“number_of_shards”:“1”,
“number_of_replicas”:“1”
}
}
}
DELETE zhuge2
3.3. 4 处理null 空值的方法
- sql语句表达式
select tags from testdb2 where tags is not null
- DSL语句表达式
GET zhuge2/testdb/_search
{"query": {"bool": {"filter": {"exists": {"field": "tags"}}}}
}
3.3.5 查询为null的数据
GET zhuge2/testdb/_search
{"query": {"bool":{"must_not":{"exists":{"field": "tags"}}}}
}