elasticsearch(es)查询-URI search命令

本文详细介绍了Elasticsearch的基本命令,如q参数的使用、df选择字段、sort和fromsize排序,以及Profile功能展示查询执行。通过实例演示了各种查询类型,包括精确匹配、OR查询、布尔查询和范围查询。适合深入理解搜索引擎操作技巧。

基本命令

  • q指定查询语句
  • df 默认字段,不指定时,会对所有字段进行查询
  • sort排序 / from size 用于排序
  • Profile 可以显示查询是如何执行.

查询示例

GET /movies/_search?q=2012&df=title
{
  "profile":"true"
}

可以看看结果
在这里插入图片描述
这里我们看可以看到 返回了2条数据
在这里插入图片描述
这里我们可以看到
type为"TermQuery"
description为"title:2012"

# 对所有字段就行查询(性能不好)
GET /movies/_search?q=2012
{
  "profile": "true"
}
# 对指定字段进行查询(这里和采用df指定字段是一样的)
GET /movies/_search?q=title:2012
{
"profile": "true"
}
# AND查询的title包含 Beautiful  和 Mind 这2个单词的(这里前后顺序要求一致)
GET /movies/_search?q=title:"Beautiful Mind"
{
  "profile": "true"
}
# OR查询的title包含 Beautiful 或 Mind (这里是没有引号的)
GET /movies/_search?q=title:Beautiful Mind
{
  "profile": "true"
}
# 布尔查询用"()"包起来 title 必需包含 Beautiful  或 Mind
GET /movies/_search?q=title:(Beautiful Mind)
{
  "profile": "true"
}
# 包含 Beautiful 并且 包含 Mind
GET /movies/_search?q=title:(Beautiful AND Mind)
{
  "profile": "true"
}
# 包含 Beautiful 并且不包含 Mind
GET /movies/_search?q=title:(Beautiful NOT Mind)
{
  "profile": "true"
}
# 范围查询 year 大于等于1980
GET /movies/_search?q=year:>=1980
{
  "profile": "true"
}
# 通配符查询 title包含b
GET /movies/_search?q=title:b*
{
  "profile": "true"
}
# 模糊匹配查询
GET /movies/_search?q=title:beautifl~1
{
  "profile": "true"
}
<think>好的,用户想要配置elasticsearch-head-master来连接带有密码认证的Elasticsearch。首先,我需要回忆一下elasticsearch-head的基本配置方法,尤其是涉及认证的部分。 根据引用[2],用户之前可能使用过docker-compose安装eselasticsearch-head,但没有提到认证。现在需要加上密码。Elasticsearch在启用安全功能后,会要求用户名和密码,比如默认的elastic用户。所以,elasticsearch-head需要配置这些认证信息。 接下来,我需要确定elasticsearch-head是否支持认证配置。查阅相关文档,发现elasticsearch-head通常通过HTTP基本认证来连接。因此,配置的关键可能是在连接URL中包含用户名和密码,比如http://username:password@localhost:9200。 但是,用户提到的是elasticsearch-head-master,可能需要直接修改其配置文件。例如,在引用[4]中解压安装的elasticsearch,可能需要找到elasticsearch-head的配置文件,添加认证参数。或者,在运行elasticsearch-head时,设置环境变量或启动参数来传递认证信息。 另外,引用[3]和[5]提到启动Elasticsearch的方式,但用户的问题是关于前端插件连接认证。可能需要修改Elasticsearch的CORS设置,允许elasticsearch-head的域名,并在请求头中包含认证信息。比如在elasticsearch.yml中添加: http.cors.allow-headers: Authorization, X-Requested-With, Content-Type 此外,如果用户是通过docker部署,可能需要修改docker-compose文件,如引用[2]中的配置,添加环境变量来设置认证。例如,在es-head服务中添加相关环境变量。 最后,验证连接是否成功,可能需要检查浏览器的开发者工具,查看请求头中是否包含Authorization字段,以及Elasticsearch的日志是否有权限错误。确保所有步骤正确后,用户应该能够通过elasticsearch-head访问有密码保护的Elasticsearch集群。</think>### 配置elasticsearch-head连接带密码认证的Elasticsearch #### 1. **启用Elasticsearch安全认证** - 修改Elasticsearch配置文件`elasticsearch.yml`,添加以下内容: ```yaml xpack.security.enabled: true xpack.security.transport.ssl.enabled: true http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization, X-Requested-With, Content-Type ``` - 重启Elasticsearch服务,并执行密码初始化命令: ```bash ./bin/elasticsearch-setup-passwords auto ``` 系统将生成默认用户(如`elastic`)的随机密码[^5]。 #### 2. **配置elasticsearch-head连接参数** - **直接修改前端配置**(适用于源码部署): 在`elasticsearch-head`的`_site/app.js`中,修改连接地址为: ```javascript this.base_uri = "http://elastic:your_password@localhost:9200"; ``` - **通过代理配置**(推荐): 使用Nginx反向代理,添加HTTP基本认证头: ```nginx location / { proxy_pass http://elasticsearch:9200; proxy_set_header Authorization "Basic base64_encode(elastic:your_password)"; } ``` 然后在elasticsearch-head中连接代理地址[^1][^2]。 #### 3. **Docker环境配置** 若通过Docker部署,修改`docker-compose.yml`中的`es-head`服务: ```yaml services: es-head: image: tobias74/elasticsearch-head:6 environment: - ES_USER=elastic - ES_PASSWORD=your_password ports: - "9100:9100" ``` 部分镜像支持通过环境变量注入认证信息。 #### 4. **验证连接** - 访问`http://localhost:9100`,在连接地址栏输入: ``` http://elastic:your_password@es_host:9200 ``` - 检查集群健康状态,确认无`401 Unauthorized`错误[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值