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

个人性质的网站备案容易查东营建设企业网站

个人性质的网站备案容易查,东营建设企业网站,包头教育平台网站建设,上海网站建设 分类广告最近实习#xff0c;项目用的elasticseatch做的存储库#xff0c;但是之前对于es接触的不多#xff0c;查询语法有些不熟#xff0c;每次想写个DSL查询时都要gpt或者施展搜索大法#xff0c;所以索性就自己总结总结#xff0c;以后忘了也方便查。所以这篇文章会持续更新。…最近实习项目用的elasticseatch做的存储库但是之前对于es接触的不多查询语法有些不熟每次想写个DSL查询时都要gpt或者施展搜索大法所以索性就自己总结总结以后忘了也方便查。所以这篇文章会持续更新。 数据类型 按照是否支持分词分为两大类支持分词的数据类型如text,match_only_text等不支持的分词的数据类型如keyworddate数值型。也可以分为基本数据类型和复杂数据类型。 基本数据类型 数字类型 类型说明byteintegershortlongdoublefloathalf_float半精度16位浮点数scaled_float缩放类型浮点数按固定doble比例因为缩放unsigned_long无符号64位整形 binary编码为base64字符串的二进制值 boolean:布尔类型 alias字段别名 keywords包括keywordconstant_keyword和wildcard dates:包括date,date_nanos date的格式有yyyy-MM-dd HH:mm:ss、yyyy-MM-dd、时间戳 对象关系类型复杂类型 object非基本数据类型默认的json对象为objectflattened单映射对象类型其值为jsonnested嵌套数据类型join父子级关系类型 结构化类型 RangeIPversionnumber3 聚合数据类型 aggregate_metric_double,histogram 文本搜索字段 textcompletion es默认情况下会为text类型创建倒排索引 文档排名类型 空间数据类型 geo_point 其它数据类型 映射参数 analyzer指定分词器只有text类型字段才支持 coerce是否支持强制类型转换 常用DSL总结 索引 索引名和字段名命名规范1.英文全小写 2.不要使用驼峰3.多个单词之间用_分隔 索引的不可变性索引创建成功后索引名称、主分片数量(但可以修改副本数量、字段类型不可变。 也不可以删除某个字段但可以新增字段。 查询索引 es8和es6相同 GET /索引名 或 GET /索引名/_mapping删除索引 es8和es6相同 DELETE 索引名创建索引 es8 PUT /索引名 {settings:{},mappings: {properties: {field1: {type: text},field2: {type: keyword}}} }es8中默认一个索引中只有_doc一种type创建索引时不用指定type指定type会报错指定_doc也不行 es6 PUT /索引名 {settings:{number_of_shards: 1,number_of_replicas: 1},mappings: {类型名:{properties: {新字段: {type: 字段类型}}}} }es6中创建索引必须指定类型不然会报错 修改索引 一个索引一旦创建后不可以删除字段、修改字段数据类型。但可以修改字段的其他属性如fielddata等 添加新字段 es6 PUT 索引名/_mapping/类型名 {properties:{新字段名:{type:新字段类型}} }es8 PUT 索引名/_mapping {properties:{新字段名:{type:新字段类型}} }修改settings 可以通过settings api修改某些settings比如副本数量、index_refresh_interval、index_max_result_windows PUT 索引名/_settings {number_of_replicas:3 }reindex reindex不是重建索引而是将一个索引中的数据重建到另一个索引中 POST _reindex {source:{index:源索引名},dest:{index:目标索引名} }文档 新增文档 手动指定id使用PUT 新增文档时可选op_type参数该参数有create、index两个值。create不存在则创建存在则报错。index不存在则创建存在则覆盖 # 也可写为 /索引名/_create/文档id PUT /索引名/_doc/文档id/?op_typecreate {字段名:字段值,字段名:字段值 }# 不可写为 /索引名/_index/文档id PUT /索引名/_doc/文档id/?op_typeindex {字段名:字段值,字段名:字段值 }使用index时如果id为某个值的文档已经存在则会全量更新 或者 PUT /索引名/_doc/1 {字段名:字段值 }也是全量替换 自动生成id使用POST # 也可以 /索引名/_doc/id 指定id POST /索引名/_doc {属性名:属性值 }查询文档 _source source api控制返回哪些字段 如果设置为false则只返回元数据 GET /索引名/_doc/文档id?_sourcefalse #此处值默认就是true也可以使用_source只查询source源数据不返回元数据 GET /索引名/_source/文档id_search POST /goods/_search {query: {term: {title: Apple}} }除了term精准查询还有range、match、mulit_match 批量查询文档 GET /_mget {doc:[{_index:索引名,_id:文档id},{_index:索引名,_id:文档id}] } # 可以批量查询多个索引里的多个文档GET /索引名/_mget {ids:[1,2] } #根据id批量查询一个索引里的多个文档修改文档 全量修改 覆盖原来的文档其本质是根据指定id删除原来的文档新增一个相同id的文档。如果根据id删除时id不存在第二步的新增也会执行也就从修改变成了新增操作了。 PUT /{索引库名}/_doc/文档id {字段1: 值1,字段2: 值2,// ... 略 }其实就是put指定id新增文档 增量修改 只修改指定id匹配的文档中的部分字段 使用_update(只能通过文档id去更新) POST /索引名/_update/文档id {doc:{属性名:属性值,属性名:属性值} } # 通过文档id更新在7.x之前的版本还可以这样写 POST /索引名/_doc/文档id/_update {doc:{属性名:属性值} }想通过query定制查询条件来更新文档得通过_update_by_query而且必须通过写scripts来更新 删除文档 根据query查询条件删除 删除时并不一定每次都知道文档id通过具体查询条件删除 POST /索引名/_delete_by_query {query:{term:{//或match字段名:字段值}} }bulk 批量插入文档 POST /_bulk {action:{_index:索引名,_id:文档id}} {属性名:属性值,属性名:属性值} {action:{_index:索引名,_id:文档id}} {属性名:属性值,属性名:属性值}# action的值可选index和create跟前面一样批量更新文档 POST /_bulk {update:{_index:索引名,_id:文档id}} {doc:{属性名:属性值,属性名:属性值}} {update:{_index:索引名,_id:文档id}} {doc:{属性名:属性值,属性名:属性值}} 批量删除文档 POST /_bulk {delete:{_index:goods,_id:100}} {delete:{_index:goods,_id:101}} tips1. 每个bulk写完后最后要有一个换行2.bulk中的一个失败不会影响其它的 Mapping 自动映射 es运行可以不用像mysql等关系型数据库一样需要提前创建表结构可以直接插入文档由自动映射器自动确定类型。自动映射器推断字段类型的规则 field typedymaicruntimetrue|falsebooleanboolean小数floatdouble整数longlongobjectobject-数组取决于数组中第一个非空元素的类型同左日期格式字符串datedate数字类型字符串text其它字符串textkeywordkeyword 自动映射模版 将某一类字段自动映射成特定的数据类型 match_mapping_type 用于匹配数据类型 PUT /索引名 {mappings:{dynaic_templates:[{模版名:{match_mapping_type:long,match:num_*, //表示字段名以num_开头unmatch:*_text, //表示字段名不以_text结尾mapping:{type:integer}}},{模版名:{match_mapping_type:string, //string表示文本mapping:{type:keyword}}}]} }高阶查询 match POST /索引名/_search {query:{match:{字段名:字段值 }} }match_all 可以认为和直接GET /索引名/_search查询没什么区别 agregations聚合分析聚合查询 语法 POST product/_search {size:0, //不想让结果中包含hits就size为0aggs:{查询名字:{聚合类型:{field:字段名,size:10, //设置桶的个数默认为10order:{_count:asc //根据每个桶的文档数量升序}}}} }Bucket agregations 类比理解为msyql的分组查询一个桶就是具有相同特征的一个组 聚合类型为terms时结果对所有的文档的某字段值进行分组查询 除了terms还有range、date_histogram等 text类型的字段默认不会建立正排索引所以桶聚合查询对text类型字段不生效只对keyword类型生效。text类型字段建立正排索引不现实而且也没意义。你一般会在mysql里对varchar100 的desc字段建立索引 想对text类型的字段bucket查询可以设置该字段的fielddata为true则在查询时会在内存中进行分组数据量很多时容易导致OOM不建议这么做。 Metrics agregations指标聚合 例如统计最大、最小平均值、总和、value_count聚合类型分别为max、min、avg、sum、该字段值非空的文档数量。stats为这几个全部。 POST /索引名/_search {aggs:{聚合查询名字:{max:{field:字段名如price}},聚合查询名字:{min:{field:字段名如price}}} }管道聚合 跟linux里的管道一个意思管道聚合查询就是在一个聚合查询结果作为另一个聚合查询的输入继续聚合查询。 例如查询平均价格最低的商品类型 POST /product/_search {aggs:{查询名字1:{terms:{field:type //先对商品类型桶聚合}, //在这个的基础上继续聚合查询aggs:{查询名称2:{avg:{field:price}}}}, //这个整个聚合得到了各个分类的平均值min_bucket:{min_bucket:{buckets_path:查询名字1查询名字2}}} }在谁的基础上继续聚合查询就和谁平级 组合查询 bool query must must表示查询条件都要满足。即 and GET /索引名/_search {query:{bool:{must:[ //must的值是数组数组里的每一个查询条件都要满足{match:{字段名:目标值}},//在这继续加must的其他查询条件{match_phrase:{字段名:目标值}}]}} }must_not 和must相反must_not里的所有查询条件都是要排除的数据。即 ! GET /索引名/_search {query:{bool:{must_not:[ //must_not的值是数组数组里的每一个查询条件都不满足{match:{字段名:目标值}},//在这继续加must_not的其他查询条件{match_phrase:{字段名:目标值}}]}} }should 也就是 or filter 和match一样也是and但是filter只是过滤掉不满足条件的文档不参与评分计算。 并且以上查询都可以组合使用 Script es设计了painless脚本语言老版本中用的是Grovvy但其安全性和性能远不及painless。但painless性能是不及DSL的 ! GET /索引名/_search {query:{bool:{must_not:[ //must_not的值是数组数组里的每一个查询条件都不满足{match:{字段名:目标值}},//在这继续加must_not的其他查询条件{match_phrase:{字段名:目标值}}]}} }should 也就是 or filter 和match一样也是and但是filter只是过滤掉不满足条件的文档不参与评分计算。 并且以上查询都可以组合使用 Script es设计了painless脚本语言老版本中用的是Grovvy但其安全性和性能远不及painless。但painless性能是不及DSL的
http://www.hkea.cn/news/14573483/

相关文章:

  • 家居网站建设如何广告设计专业前景分析
  • 湘潭网站设计公司项目营销策划方案
  • 苏州网站建设的一般流程大型网站开发成本
  • 建网站外包常州免费网站建站模板
  • 成都旅游网站建设手机百度关键词排名 seo网站优化软件
  • 怎么把自己做的网站让外网访问河南高端建设网站
  • html5国内网站建设网页设计师好吗
  • 慈溪住房和城乡建设部网站wordpress页首文件
  • php和ASP网站那个好怎样免费自己做网站视频
  • 外贸公司的网站建设模板中信建设有限责任公司营业执照
  • 做中英文游戏门户网站关键词怎么弄网站推广方法大全
  • 青木源网站建设公司浙江省建设信息网官网
  • 四川城乡建设厅网站建商城网站需要什么
  • 科技创新网站建设策划书wordpress 清理图片
  • 淮北网站开发公司wordpress镜像下载
  • 网站建设论文选题表论坛类网站搭建
  • 网站联系我们页面设计青岛简易付网络技术有限公司
  • 做推广有什么好网站网站设计 专业
  • 简述一般网站开发方式商标设计网站哪个好
  • 中国建设投资集团 网站首页市场营销管理
  • 沂南建设局网站云服务器上放多个网站
  • 网站免费正能量软件直播现代教育网站开发项目的研究
  • 个人承包工程合同范本西安关键词排名优化
  • 如何查看 网站诊断微网站免费搭建平台
  • 廊坊 网站哈尔滨市哪里做淘宝网站
  • 河北网站开发哪家好广州网络推广培训
  • 简易的网站网站建设和网络推广外包
  • 下载网站的软件网易企业邮箱网页版登录入口
  • 网站推广规划福田瑞沃自卸车官网
  • 怎么做网站的排名南通市网站建设