MST

星途 面试题库

面试题:ElasticSearch中如何通过URL参数设置实现简单的查询删除操作

假设在ElasticSearch中有一个名为'products'的索引,文档包含'name'和'price'字段。请阐述如何通过URL参数设置,删除所有价格大于100的产品文档,说明具体的URL格式及参数含义。
49.2万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试
  1. URL格式
    DELETE /products/_query
    
    • /products:表示要操作的索引名称,这里是products索引。
    • /query:这是Elasticsearch提供的通过查询来删除文档的端点。
  2. 请求体参数(虽然题目强调URL参数,但删除符合条件文档需在请求体设置)
    {
        "query": {
            "range": {
                "price": {
                    "gt": 100
                }
            }
        }
    }
    
    • query:整体查询条件的根字段。
    • range:范围查询,用于指定数值类型字段(这里是price)的范围。
    • gt:表示“大于”,即筛选出price大于100的文档进行删除。

如果一定要通过URL参数设置(实际中难以实现完全符合要求的仅URL参数删除,这里仅做模拟尝试),可以考虑结合q参数,但在Elasticsearch 7.8及之后版本默认不再支持简单的q参数语法用于这种复杂删除,这里仅为示例:

  1. URL格式
    DELETE /products/_query?q=price:>100
    
    • /products:要操作的索引名称。
    • /query:删除符合查询条件文档的端点。
    • q=price:>100q参数用于指定查询条件,这里price:>100表示筛选出price字段值大于100的文档。但这种方式功能有限且不推荐用于复杂场景,实际建议使用请求体方式进行删除。