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

网站建设推广关键词免费seo提交工具

网站建设推广关键词,免费seo提交工具,做cps的网络文学网站,常州网站建设软件关注:CodingTechWork 引言 在当今大数据应用中,Elasticsearch(简称 ES)以其高效的全文检索、分布式处理能力和灵活的查询语法,广泛应用于各类日志分析、用户行为分析以及实时数据查询等场景。通过 ES,用户…

关注:CodingTechWork

引言

  在当今大数据应用中,Elasticsearch(简称 ES)以其高效的全文检索、分布式处理能力和灵活的查询语法,广泛应用于各类日志分析、用户行为分析以及实时数据查询等场景。通过 ES,用户可以轻松地查询大量数据、进行复杂的数据筛选、聚合分析等操作。
  本文将结合实际应用场景,深入讲解 Elasticsearch 基础和高级查询语句的使用原理与技巧,帮助读者通过实践掌握 ES 查询的核心概念和技术。

索引

索引设计与数据模型

  首先,我们假设demo_operate_log_data_m202501_read索引存储了用户的基本信息。每个文档表示一个用户,字段包括:

user_id:用户唯一标识符(例如:user_123)
name:用户姓名
age:用户年龄
gender:用户性别(如:male 或 female)
email:用户邮箱
phone_number:用户电话号码
register_date:用户注册时间(日期类型)
last_login:用户最后登录时间(日期类型)
location:用户所在地理位置(如:Beijing、Shanghai)

  这些字段将在我们接下来的查询中作为查询条件,以获取用户的详细信息。下面将根据不同的查询需求展示 Elasticsearch 查询的基础和高级用法。

创建索引

  在 Elasticsearch 中,创建索引时,通常会定义索引的映射(mapping),指定字段类型、分析器等属性。下面是一个示例索引创建语句,针对 demo_operate_log_data_m202501_read索引,我们假设它包含了与用户相关的字段。

示例:demo_operate_log_data_m202501_read索引创建语句

PUT /demo_operate_log_data_m202501_read
{"mappings": {"properties": {"user_id": {"type": "keyword"  // 用户唯一标识符,通常用 keyword 类型以便精确匹配},"name": {"type": "text"  // 用户姓名,使用 text 类型以支持全文搜索},"age": {"type": "integer"  // 用户年龄,使用整数类型},"gender": {"type": "keyword"  // 用户性别,通常是固定值,使用 keyword 类型},"email": {"type": "keyword"  // 用户邮箱,使用 keyword 类型},"phone_number": {"type": "keyword"  // 用户电话号码,使用 keyword 类型},"register_date": {"type": "date"  // 注册时间,使用日期类型},"last_login": {"type": "date"  // 最后登录时间,使用日期类型},"location": {"type": "text"  // 用户所在位置,使用 text 类型以支持全文搜索}}}
}

解释:

  • user_id:使用 keyword 类型,这样可以确保查询时进行精确匹配,因为 keyword 不会被分词。
  • name:使用 text 类型,支持全文搜索,可以在姓名中进行模糊搜索。
  • age:使用 integer 类型,用于存储年龄的整数值。
  • gender、email 和 phone_number:使用 keyword 类型,这些字段通常会是固定值或标识符,适合精确查询。
  • register_date 和 last_login:使用 date 类型,适合存储日期时间格式数据。
  • location:使用 text 类型,以便对用户的地理位置信息进行全文搜索。

插入数据

  接下来我们将根据刚才定义的demo_operate_log_data_m202501_read索引,插入一些示例数据。这些数据将包括用户的user_id、name、age、gender、email、phone_number、register_date、last_login 和 location字段。

POST /demo_operate_log_data_m202501_read/_doc/1
{"user_id": "U001","name": "Alice Wang","age": 29,"gender": "female","email": "alice.wang@example.com","phone_number": "+86-13800000001","register_date": "2023-01-15T10:30:00","last_login": "2025-01-05T15:45:00","location": "Beijing, China"
}POST /demo_operate_log_data_m202501_read/_doc/2
{"user_id": "U002","name": "Bob Zhang","age": 34,"gender": "male","email": "bob.zhang@example.com","phone_number": "+86-13800000002","register_date": "2022-06-10T08:20:00","last_login": "2025-01-06T09:00:00","location": "Shanghai, China"
}POST /demo_operate_log_data_m202501_read/_doc/3
{"user_id": "U003","name": "Charlie Li","age": 25,"gender": "male","email": "charlie.li@example.com","phone_number": "+86-13800000003","register_date": "2024-03-22T14:10:00","last_login": "2025-01-07T18:30:00","location": "Guangzhou, China"
}POST /demo_operate_log_data_m202501_read/_doc/4
{"user_id": "U004","name": "David Liu","age": 40,"gender": "male","email": "david.liu@example.com","phone_number": "+86-13800000004","register_date": "2020-11-18T16:50:00","last_login": "2025-01-04T12:00:00","location": "Shenzhen, China"
}POST /demo_operate_log_data_m202501_read/_doc/5
{"user_id": "U005","name": "Eva Zhang","age": 31,"gender": "female","email": "eva.zhang@example.com","phone_number": "+86-13800000005","register_date": "2021-09-30T11:00:00","last_login": "2025-01-06T16:10:00","location": "Chengdu, China"
}

在这里插入图片描述
在这里插入图片描述

解释:

  • 每条数据通过 POST 请求插入到 Elasticsearch 索引demo_operate_log_data_m202501_read 中。
  • 数据中的 user_id 为每个用户的唯一标识符。
  • name、age、gender、email、phone_number、register_date、last_login 和 location 都是与用户相关的属性,按需求填充相应的信息。
  • 日期格式为yyyy-MM-dd'T'HH:mm:ss,符合 Elasticsearch 的日期格式。

插入成功后的输出:

  插入数据成功后,Elasticsearch 会返回类似下面的响应(每个请求的响应可能有所不同,以下是一个例子):

{"_index": "demo_operate_log_data_m202501_read","_id": "1","_version": 1,"result": "created","_shards": {"total": 1,"successful": 1,"failed": 0},"_seq_no": 0,"_primary_term": 1
}

  每个用户的文档都会被成功插入到索引中,并可以通过 ID 或查询来访问。

基础查询

精确匹配查询 (term 查询)

在 Elasticsearch 中,精确匹配查询通常使用 term 查询。假设我们要查询 user_id 为 U001 的用户基本信息,可以使用如下的 term 查询:

GET /demo_operate_log_data_m202501_read/_search
{"query": {"term": {"user_id": "U001"}}
}

在这里插入图片描述

解释:

  • term 查询用于精确匹配字段的值。
  • 如果 user_id 在映射中被定义为 keyword 类型,那么它会按照原样进行精确匹配。

匹配查询 (match 查询)

对于文本类型的字段,match 查询能够实现更灵活的搜索。例如,我们要查询所有名字包含 “John” 的用户:

GET /demo_operate_log_data_m202501_read/_search
{"query": {"match": {"name": "Charlie Li"}}
}

在这里插入图片描述

解释:

  • match 查询适用于全文搜索,ES 会对文本字段进行分词后进行搜索。
  • 对于如 name 这样的文本字段,match 查询可以匹配到所有包含 “Charlie Li” 的用户,无论是名字中间、开始或结束部分。

范围查询 (range 查询)

如果我们想查询年龄在 20 到 30 岁之间的用户,可以使用 range 查询:

GET /demo_operate_log_data_m202501_read/_search
{"query": {"range": {"age": {"gte": 20,"lte": 30}}}
}

在这里插入图片描述

解释:

  • range 查询适用于数字或日期类型字段。通过设置 gte(大于或等于)和 lte(小于或等于)来定义一个范围。
  • 该查询返回所有年龄在 20 到 30 岁之间的用户。

布尔查询 (bool 查询)

布尔查询可以将多个查询条件组合起来。假设我们要查询年龄在 20 到 30 岁之间,且性别为 “female” 的用户,可以使用 bool 查询:

GET /demo_operate_log_data_m202501_read/_search
{"query": {"bool": {"must": [{"range": {"age": {"gte": 20,"lte": 30}}},{"term": {"gender": "female"}}]}}
}

在这里插入图片描述

解释:

  • bool 查询结合了多个查询条件,其中must 表示条件必须满足。
  • range 查询筛选年龄,term 查询筛选性别。
  • must 可以包含任意多个查询子句,适用于复杂的多条件组合查询。

高级查询

聚合查询 (aggregations)

聚合查询允许我们对数据进行统计、分组和汇总分析。假设我们需要统计每个年龄段内的用户数量,可以使用 range 聚合查询:

GET /demo_operate_log_data_m202501_read/_search
{"size": 0,"aggs": {"age_groups": {"range": {"field": "age","ranges": [{"to": 18},{"from": 18,"to": 30},{"from": 30,"to": 50},{"from": 50}]}}}
}

在这里插入图片描述

解释:

  • 该查询使用range聚合将用户的年龄划分为不同的区间,并统计每个区间内的用户数量。
  • size: 0 表示不返回文档内容,只返回聚合结果。
    若size不为0,则返回文档内容。
    在这里插入图片描述

多字段匹配查询 (multi_match 查询)

如果我们需要在多个字段上进行搜索,例如查询包含 “Charlie Li” 的用户,并且可以在 name、email 和 phone_number 等字段中匹配,我们可以使用 multi_match 查询:

GET /demo_operate_log_data_m202501_read/_search
{"query": {"multi_match": {"query": "Charlie","fields": ["name","email","phone_number"]}}
}

在这里插入图片描述

解释:

  • multi_match 查询可以在多个字段中查找与查询词匹配的文档,适用于需要在多个字段中执行类似的查询。
  • fields参数指定要查询的字段列表,query 是我们要搜索的关键词。
  • 默认情况下,multi_match 查询会在所有指定的字段中查找,只要其中一个字段包含查询词中的任意词,文档就会匹配并返回。例如,在你的查询中,如果 name 字段匹配 “Charlie”,或者 email 字段匹配 “Li”(或者两者都有),文档都会被返回。

分页查询 (from 和 size 参数)

在面对大量数据时,通常会进行分页查询,以分批次返回查询结果。假设我们要查询第 2 页的用户,每页显示 2 条记录:

GET /demo_operate_log_data_m202501_read/_search
{"query": {"match_all": {}}
}GET /demo_operate_log_data_m202501_read/_search
{"query": {"match_all": {}},"from": 1,"size": 2
}

先验证查看全部的
在这里插入图片描述
再分页查
在这里插入图片描述

解释:

  • query -> match_all:match_all 查询会返回该索引中的所有文档。这是一种无条件匹配所有文档的查询,通常用于检索整个索引的数据。
  • from: 1:这是分页的参数之一,表示从第 2 条记录开始(从 0 开始计数)。所以会跳过第 1 条文档,返回从第 2 条文档开始的结果。
  • size: 2:这个参数控制每次查询返回的文档数量。设置为 2 表示查询会返回 2 条结果。

字段排序查询 (sort 参数)

在某些情况下,我们需要对查询结果进行排序。例如,查询最新注册的 2 个用户,可以按 register_date字段进行排序:

GET /demo_operate_log_data_m202501_read/_search
{"query": {"match_all": {}},"sort": [{"register_date": {"order": "desc"}}],"_source": ["user_id", "name", "register_date"]
}GET /demo_operate_log_data_m202501_read/_search
{"query": {"match_all": {}},"sort": [{"register_date": {"order": "desc"}}],"size": 2
}

先验证看所有的排序
在这里插入图片描述
排序筛选前两个
在这里插入图片描述

解释:

  • sort 参数用于指定排序规则,register_date 字段按降序排列,表示返回最新注册的用户。
  • size 限制每次返回的记录数量。

模糊查询 (fuzzy 查询)

如果用户输入的查询条件可能包含拼写错误,fuzzy 查询可以帮助我们进行模糊匹配。例如,我们要查询姓氏为 “Charlie Li” 的用户,但用户可能输入 “Charlie Lixxx”:

GET /demo_operate_log_data_m202501_read/_search
{"query": {"bool": {"should": [{"fuzzy": {"name": {"value": "Zhang","fuzziness": "AUTO"}}}]}}
}

在这里插入图片描述

解释:

  • bool查询:bool 查询的 should 子句意味着至少满足其中一个条件。当前查询中,只有一个模糊查询条件。
  • fuzzy 查询:fuzzy查询是用于模糊匹配的。在这里,查询目标是 name 字段,查询的关键词是 “Zhang”,模糊度为 "AUTO",即自动选择最佳的模糊度。
  • fuzziness: "AUTO":"AUTO" 表示根据字符串的长度自动选择合适的模糊度。例如,短字符串可能只会有一个字符的差异(fuzziness: 1),而较长的字符串可能允许更多的字符差异(fuzziness: 2 或更多)。

总结

  通过本篇博客,我们详细介绍了 Elasticsearch 的基础和高级查询语法。我们展示了如何使用精确匹配查询(term)、全文搜索(match)、范围查询(range)、布尔查询(bool)等技术,帮助开发者快速检索用户基础信息。同时,我们还探讨了如何进行数据统计、聚合查询、多字段匹配等。


文章转载自:
http://wanjiasentential.ptzf.cn
http://wanjiavaginismus.ptzf.cn
http://wanjiawart.ptzf.cn
http://wanjiaflaunch.ptzf.cn
http://wanjiadavenport.ptzf.cn
http://wanjiadhobi.ptzf.cn
http://wanjiaapocynthion.ptzf.cn
http://wanjiabeatitude.ptzf.cn
http://wanjiaairplay.ptzf.cn
http://wanjiainitiative.ptzf.cn
http://wanjiapresternum.ptzf.cn
http://wanjiavicarage.ptzf.cn
http://wanjiaphotographica.ptzf.cn
http://wanjiaaggravating.ptzf.cn
http://wanjiahungary.ptzf.cn
http://wanjiapeat.ptzf.cn
http://wanjiagadroon.ptzf.cn
http://wanjiaincorporation.ptzf.cn
http://wanjiatrample.ptzf.cn
http://wanjiagimbals.ptzf.cn
http://wanjiapolyisobutylene.ptzf.cn
http://wanjiatorrent.ptzf.cn
http://wanjiaguard.ptzf.cn
http://wanjiaempocket.ptzf.cn
http://wanjiafloodtime.ptzf.cn
http://wanjiachaffy.ptzf.cn
http://wanjiasleepcoat.ptzf.cn
http://wanjiaunsearchable.ptzf.cn
http://wanjiadissatisfied.ptzf.cn
http://wanjialivingstone.ptzf.cn
http://wanjiamanatee.ptzf.cn
http://wanjiarandem.ptzf.cn
http://wanjiaunef.ptzf.cn
http://wanjiastatutory.ptzf.cn
http://wanjiaredefine.ptzf.cn
http://wanjiasuperconduct.ptzf.cn
http://wanjiaintracutaneous.ptzf.cn
http://wanjiafascinatress.ptzf.cn
http://wanjiaentrain.ptzf.cn
http://wanjiaprague.ptzf.cn
http://wanjianigerian.ptzf.cn
http://wanjiarss.ptzf.cn
http://wanjiainflective.ptzf.cn
http://wanjialinkwork.ptzf.cn
http://wanjiaaesop.ptzf.cn
http://wanjiastress.ptzf.cn
http://wanjiaopening.ptzf.cn
http://wanjiaunitable.ptzf.cn
http://wanjiaknoxville.ptzf.cn
http://wanjiapandybat.ptzf.cn
http://wanjiaagitation.ptzf.cn
http://wanjiamoa.ptzf.cn
http://wanjiaplasmogamy.ptzf.cn
http://wanjiaobwalden.ptzf.cn
http://wanjiahandsomely.ptzf.cn
http://wanjiaexpulsion.ptzf.cn
http://wanjiacopperplate.ptzf.cn
http://wanjialamda.ptzf.cn
http://wanjiajacob.ptzf.cn
http://wanjiacommeasure.ptzf.cn
http://wanjiahaustellate.ptzf.cn
http://wanjiaaws.ptzf.cn
http://wanjiacarrot.ptzf.cn
http://wanjiadubiosity.ptzf.cn
http://wanjiaannihilable.ptzf.cn
http://wanjiayaffil.ptzf.cn
http://wanjiareview.ptzf.cn
http://wanjiascorzalite.ptzf.cn
http://wanjiachoirboy.ptzf.cn
http://wanjiacybernate.ptzf.cn
http://wanjiaviscerotropic.ptzf.cn
http://wanjiadisraelian.ptzf.cn
http://wanjiamagical.ptzf.cn
http://wanjiasphaerosome.ptzf.cn
http://wanjiasawyer.ptzf.cn
http://wanjiawhimmy.ptzf.cn
http://wanjiablaxploitation.ptzf.cn
http://wanjiabarbotine.ptzf.cn
http://wanjiacalorize.ptzf.cn
http://wanjiacytotropism.ptzf.cn
http://www.15wanjia.com/news/116178.html

相关文章:

  • 西宁做网站君博推荐国际军事形势最新消息
  • 曲周企业做网站推广北京全网营销推广公司
  • 做微信投票的网站5seo薪酬如何
  • 怎么做发卡网站seo技术推广
  • 备案成功的网站少女长尾关键词挖掘
  • 河北专业做网站广州网站优化公司如何
  • 如何开wordpress网站北京网站建设公司报价
  • 做网站还有开发文档吗青岛网页搜索排名提升
  • 一个域名对应多个网站徐州百度推广总代理
  • 可以自己做网站优化吗服务推广软文范例
  • 柳州企业网站建设百度seo优化推广公司
  • 怎么建设b2b网站百度营业执照怎么办理
  • 甘肃网站建设哪家好免费的舆情网站app
  • 网站开发可以在哪个操作系统seo外链推广工具
  • 建立网站目录结构应遵循的方法和建议网络推广费用一般多少
  • 知名电子商务网站有哪些网站建设与网页设计制作
  • 广州网站建设求职简历管理培训机构
  • 做电影网站用什么软件叫什么百度推广多少钱一天
  • 上海网站建设免关键词资源
  • 网站建设财务策划书chrome谷歌浏览器
  • 品牌服装网站建设现状网站友情链接是什么
  • 苹果网站做的好的点怎么在百度上免费做广告
  • 服务器网站部署端口配置亚马逊关键词优化怎么做
  • wordpress 转appaso优化{ }贴吧
  • 电子商务网站的设计要求关键词排名优化软件
  • 企业小型网站要多少钱百度网站介绍
  • json做网站的数据库今日军事头条
  • 网站开发公司是互联网公司镇江seo快速排名
  • 网站关键词优化排名要怎么做线上宣传方式有哪些
  • win7上能否做asp网站推广论坛有哪些