繁体   English   中英

更新Elasticsearch文档的特定领域

[英]update a particular field of elasticsearch document

嗨,我正在尝试更新符合特定条件的elasticsearch文档。 我正在使用GoogleSense(chrome扩展名)发出请求。 我提出的要求如下所示:

GET styling_rules2/product_line_filters/_update
{
  "query": {
    "filtered": {
      "query":  {
    "bool": {
      "should": [
          {"term":{"product_line_attribute": "brand"}} 
      ],
      "minimum_should_match": 1
    }
  },
      "filter": {
        "term": {
          "product_line_name": "women_skirts"
        }
      }
    }
  },
  "script" : "ctx._source.brand=brands"
}

示例文档如下所示:

{
               "product_line_attribute_db_path": "product_filter.brand",
               "product_line_attribute": "brand",
               "product_line_name": "women_skirts",
               "product_line_attribute_value_list": [
                  "vero moda",
                  "faballey",
                  "only",
                  "rider republic",
                  "dorothy perkins"
               ]
}

预期结果:将所有具有product_line_attribute="brand"product_line_name="women_skirts"的文档更新为product_line_attribute="brands"

问题:我收到如下错误:

{
   "error": {
      "root_cause": [
         {
            "type": "search_parse_exception",
            "reason": "failed to parse search source. unknown search element [script]",
            "line": 18,
            "col": 4
         }
      ],
      "type": "search_phase_execution_exception",
      "reason": "all shards failed",
      "phase": "query",
      "grouped": true,
      "failed_shards": [
         {
            "shard": 0,
            "index": "styling_rules2",
            "node": "2ijp1pXwT46FN4on4-JPlg",
            "reason": {
               "type": "search_parse_exception",
               "reason": "failed to parse search source. unknown search element [script]",
               "line": 18,
               "col": 4
            }
         }
      ]
   },
   "status": 400
}

提前致谢!

您应该使用_update_by_query端点,而不要使用_update 此外, script部分不正确,这可能就是为什么要获取class_cast_exception

尝试以下方法:

POST styling_rules2/product_line_filters/_update_by_query
{
  "query": {
    "filtered": {
      "query": {
        "bool": {
          "should": [
            {
              "term": {
                "product_line_attribute": "brand"
              }
            }
          ],
          "minimum_should_match": 1
        }
      },
      "filter": {
        "term": {
          "product_line_name": "women_skirts"
        }
      }
    }
  },
  "script": {
    "inline": "ctx._source.brand=brands"
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM