【问题标题】:elasticsearch multi match on range范围内的弹性搜索多重匹配
【发布时间】:2017-08-31 20:58:28
【问题描述】:

我有以下数据(示例):

[
    {
        "name": "eli",
        "requests": [
            {
                "creation": "2016-09-07T00:00:00Z",
                "title": "something",
                "message": "lorem ipsum",
                "priority": 1
            },
            {
                "creation": "2016-09-07T00:00:00Z",
                "title": "something",
                "message": "lorem ipsum",
                "priority": 2
            },
            {
                "creation": "2016-09-07T00:00:00Z",
                "title": "something",
                "message": "lorem ipsum",
                "priority": 5
            }
        ]
    },
    {
        "name": "John",
        "requests": [
            {
                "creation": "2016-09-07T00:00:00Z",
                "title": "something",
                "message": "lorem ipsum",
                "priority": 1
            },
            {
                "creation": "2016-09-07T00:00:00Z",
                "title": "something",
                "message": "lorem ipsum",
                "priority": 2
            },
            {
                "creation": "2016-09-07T00:00:00Z",
                "title": "something",
                "message": "lorem ipsum",
                "priority": 1
            }
        ]
    }
]

而且我似乎无法弄清楚要对请求使用哪种类型的映射,以便我只能过滤具有优先级 gte 1 和 lte 2 的请求的用户 这意味着用户 eli 不会显示

  • 我尝试将其创建为简单字段并按如下方式查询

    {"query": {"bool": {"must": [{"range": {"requests.priority": {"gte": 1, "lte": 2}}}]}}} 但它仍然返回用户 eli。

  • 所以我尝试将其设置为嵌套但仍然不行(使用以下查询) {"query": {"bool": {"must": [{"nested": {"path": "requests","query": {"range": {"requests.priority": {"gte": 1,"lte": 1}}}}}]}}} 任何帮助表示赞赏

附言我不确定 multimatch 是在我的问题中使用的正确术语

【问题讨论】:

标签: elasticsearch


【解决方案1】:

所以我提出的解决方案是改变我的方法并过滤掉那些不符合我的弹性支持标准的人,因此示例请求看起来像 {"query": {"bool": {"must_not": [{"range": {"requests.priority": {"lt": 1, "gt": 2}}}]}}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-08
    • 2018-07-20
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多