ElasticSearch中的简单查询

前言

  最近修改项目,又看了下ElasticSearch中的搜索,所以简单整理一下其中的查询语句等。都是比较基础的。PS,好久没写博客了。。大概就是因为懒吧。闲言少叙书归正传。

查询示例 http://*.*.*.*:9200/dbname/table/

  1. 最简单粗暴的查询  
    1. {
        "query": {
          "match_all": {}
        }
      }
  2. 简单的主键或者某一个条件查询
    1. {
        "query": {
          "term": {
            "artid": 1479282922430
          }
        }
      }
  3. filter,bool查询(可以进行条件联合查询,and,or等),
    1. 复制代码
      {
        "query": {
          "filtered": {
            "filter": {
              "bool": {
                "should": {
                  "term": {
                    "pid": 6267
                  }
                }
              }
            }
          }
        }
      }
      复制代码
      复制代码
      {
        "query": {
          "filtered": {
            "filter": {
              "bool": {
                "should": {
                  "and": [
                    {
                      "term": {
                        "pid": 6267     //两个条件  一个是   pid=6267 and  privacy=1
                      }
                    },
                    {
                      "term": {
                        "privacy": 1
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
      复制代码
    ids 查询  id in (1,2,3,4,5,6),此查询可以联合bool 查询
    1. {
        "query": {
          "ids": {
            "values": [ 1,2,3,4,5,6 ]
          }
        }
      }
  4. 一个综合示例。 包含分页,排序,and条件查询,关键字查询
    1. 复制代码
      {
        "query": {
          "filtered": {
            "filter": {
              "bool": {
                "should": [
                  {
                    "and": [
                      {
                        "term": {
                          "showpublic": 1
                        }
                      },
                      {
                        "term": {
                          "privacy": "1"
                        }
                      },
                      {
                        "or": [   //此处为匹配两个字段的关键字,符合其中一个就可以,用 or
                          {
                            "query": {
                              "match_phrase": {
                                "title": {
                                  "query": "关键字",
                                  "slop": 1
                                }
                              }
                            }
                          },
                          {
                            "query": {
                              "match_phrase": {
                                "name": {
                                  "query": "关键字",
                                  "slop": 1
                                }
                              }
                            }
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            }
          }
        },
        "from": 0,
        "size": 20,
        "sort": [
          {
            "ordertime": {
              "order": "desc"
            }
          },
          {
            "artid": {
              "order": "desc"
            }
          }
        ]
      }
      复制代码

      就写这么多吧。Over。

 

posted @   丶Pz  阅读(2175)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示

目录

目录

X
+

"大爷常来玩呀"

微信支付