ElasticSearch搜索

ElasticSearch的搜索API允许用户通过GET请求或POST请求中的查询来检索信息。该API支持多索引和多类型搜索,允许设置如lenient、fields、sort、timeout等参数来定制查询行为。例如,lenient参数可以忽略查询格式错误,fields指定搜索字段,sort用于结果排序,而timeout则限制搜索时间。此外,还可以利用terminate_after限制每个碎片的返回文档数,from和size控制返回结果的范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ElasticSearch搜索API

该API用于在ElasticSearch中搜索内容。用户可以通过发送带有查询字符串作为参数的get请求进行搜索,或者可以在发布请求的消息正文中发布查询。搜索 api 主要是多索引、多类型的。

URL搜索

可以使用统一资源标识符在搜索操作中传递许多参数

  • Q 用于指定查询字符串
  • lenient 此参数用于指定查询字符串。只要将此参数设置为 true,就可以忽略基于 Formatbased 的错误。默认情况下它是假的。
  • fields 此参数用国语指定查询的字符串
  • sort 用于排序
  • timeout 这个参数可以用来限制搜索时间,并且响应只包含指定时间内的命中。默认情况下,没有超时。
  • terminate_after 可以将响应限制为每个碎片的指定数量的文档,到达该分片时,查询将提前终止。默认情况下,没有 termin_after.
  • from 要返回的命中数的起始索引。默认为0。
  • to 表示要返回的命中数,默认值为10。
### 如何使用 Elasticsearch 进行搜索操作 #### 安装与启动 Elasticsearch Elasticsearch 默认会在 `http://localhost:9200/` 上运行,可以通过浏览器访问该地址或者使用命令行工具如 `curl` 来验证其状态。如果返回 JSON 格式的集群健康状况,则说明安装成功并正在运行[^1]。 ```bash curl -X GET "localhost:9200/_cluster/health?pretty" ``` #### 创建索引 为了能够执行搜索,在此之前需要创建一个索引来保存文档数据。这里展示了一个简单的例子: ```json PUT /my-index-000001 { "settings": { "analysis": { "analyzer": { "ik_analyzer": { "type": "custom", "tokenizer": "ik_max_word" } } } }, "mappings": { "properties": { "title": { "type": "text", "analyzer": "ik_analyzer" } } } } ``` 上述配置中包含了自定义分析器 `ik_analyzer` 的设置,它基于 IK 分词插件实现更精准的文字处理功能[^2]。 #### 插入文档 接下来向刚刚建立好的索引里添加一些测试记录以便稍后检索: ```json POST /my-index-000001/_doc/ { "title": "这是一个用于演示ES搜索能力的例子" } ``` #### 执行基本全文本搜索 现在可以尝试发起一次简单匹配查询请求来获取含有特定关键词的结果集: ```json GET /my-index-000001/_search { "query": { "match": { "title": "演示 ES 搜索" } } } ``` 对于更高维度的数据比如图像特征描述符或是自然语言表示模型产生的数值型数组(即所谓的“向量”),可以从版本7.2.0起通过内置的支持来进行高效相似度计算[^3]。这允许开发者构建复杂的推荐系统或语义理解应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值