您的位置:首页 > 房产 > 家装 > 江西今天最新疫情公布_b2c旅游电子商务网站有哪些_seo自动点击排名_企业类网站有哪些例子

江西今天最新疫情公布_b2c旅游电子商务网站有哪些_seo自动点击排名_企业类网站有哪些例子

2025/5/21 0:07:29 来源:https://blog.csdn.net/weixin_43298211/article/details/142789348  浏览:    关键词:江西今天最新疫情公布_b2c旅游电子商务网站有哪些_seo自动点击排名_企业类网站有哪些例子
江西今天最新疫情公布_b2c旅游电子商务网站有哪些_seo自动点击排名_企业类网站有哪些例子

目录

创建索引

文档的CRUD操作

执行基本查询

使用过滤器

结果排序与分页

多条件组合查询


创建索引

在Elasticsearch中,索引是存储相关数据的地方。它类似于关系型数据库中的表,但具有更强的灵活性和可扩展性。创建一个索引时,可以定义索引的设置(settings)和映射(mapping)。设置包括分片数、副本数等;而映射则定义了字段的数据类型及属性。

示例: 创建一个名为library的新索引,并为书籍信息配置映射。

PUT /library
{"settings": {"number_of_shards": 1,"number_of_replicas": 0},"mappings": {"properties": {"title": { "type": "text" },"author": { "type": "keyword" },"publish_date": { "type": "date" },"genre": { "type": "keyword" }}}
}
文档的CRUD操作

一旦索引被创建好,接下来就可以开始对其中的文档进行增删改查操作了。

  • 创建文档 (Create)

    POST /library/_doc/1
    {"title": "Pride and Prejudice","author": "Jane Austen","publish_date": "1813-01-28","genre": "Romance"
    }
  • 读取文档 (Read) 可以根据ID获取特定文档。

    GET /library/_doc/1
  • 更新文档 (Update) 更新文档内容。

    POST /library/_update/1
    {"doc": {"title": "Pride and Prejudice: Annotated Edition"}
    }
  • 删除文档 (Delete) 删除指定ID的文档。

    DELETE /library/_doc/1
执行基本查询

Elasticsearch支持多种类型的查询方式,从简单的全文搜索到复杂的布尔组合都有涵盖。这里我们先看一些基础的查询示例。

  • 匹配查询 (Match Query) 搜索所有标题中包含“Prejudice”的书籍。

    GET /library/_search
    {"query": {"match": {"title": "Prejudice"}}
    }
  • 术语查询 (Term Query) 查找作者为“Jane Austen”的所有书籍。

    GET /library/_search
    {"query": {"term": {"author": "Jane Austen"}}
    }
使用过滤器

过滤器允许你基于某些条件筛选结果集,且不影响评分。这对于优化性能非常有用,特别是在处理大量数据时。

  • 范围过滤 (Range Filter) 找出出版日期在19世纪的所有书籍。
    GET /library/_search
    {"query": {"bool": {"filter": [{"range": {"publish_date": {"gte": "1800-01-01","lte": "1899-12-31"}}}]}}
    }
结果排序与分页

当返回大量结果时,对它们进行排序和分页是非常有用的。

  • 按字段排序 根据出版日期降序排列搜索结果。

    GET /library/_search
    {"query": {"match_all": {}},"sort": [{"publish_date": {"order": "desc"}}]
    }
  • 分页显示 获取第2页的结果,每页显示10条记录。

    GET /library/_search
    {"size": 10,"from": 10,"query": {"match_all": {}}
    }
多条件组合查询

利用布尔查询,我们可以灵活地结合多个查询条件来实现复杂逻辑。

  • 布尔组合查询 (Bool Query) 查找标题含有“love”并且属于“Romance”类别的书籍。

    GET /library/_search
    {"query": {"bool": {"must": [{ "match": { "title": "love" }},{ "term": { "genre": "Romance" }}]}}
    }
  • 或条件查询 (Should Clause) 返回标题含有“war”或者“peace”的书籍。

    GET /library/_search
    {"query": {"bool": {"should": [{ "match": { "title": "war" }},{ "match": { "title": "peace" }}],"minimum_should_match": 1}}
    }

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com