Elasticsearch:获取文档字段值的子字符串?

时间:2016-02-26 05:25:07

标签: elasticsearch

mysql我可以使用sql SELECT LEFT(field,4) from table搜索字段的4个字节。

Elasticsearch有类似的语法吗?

1 个答案:

答案 0 :(得分:7)

使用ES,您可以使用script_fields来对现有字段执行任何脚本计算。

在您的情况下,这将转化为像这样进行查询:

{
    "query" : {
        "match_all": {}
    },
    "script_fields" : {
        "left_field" : {
            "script" : {
                "inline": "doc.field.value.substring(0, length)"
                "params": {
                    "length": 4
                }
            }
        }
    }
}

然后在您的回复中,您将获得一个名为left_field的字段,该字段将包含field值的最左侧4个字符。

还要确保enable dynamic scripting才能生效。