ElasticSearch URI搜索空字段

时间:2018-07-20 12:02:53

标签: elasticsearch elasticsearch-5 elasticsearch-plugin

我需要通过URI创建一个查询,以过滤两个日期之间以及此日期字段为null时的所有数据。

例如: 我在某些对象中具有字段“ creation_date”,但是我希望结果中也不会出现该字段所没有的对象。

我在下面尝试了类似的方法:

http://localhost//elasticsearch/channels/channel/_search?q=channel.schedule.creation_date:[2018-06-19 TO 2018-12-22] OR channel.schedule.creation_date: NULL

只要比较日期就可以了。问题是要获取NULL值。

已编辑 源样本:

 "_source": {
                "channel": {
                    "activated": false,
                    "approved": false,
                    "content": "Jvjv",
                    "creation_date": "2018-06-21T13:06:10.000Z",
                    "facebookLink": "J jv",
                    "id": "Kvjvjv",
                    "instagramId": "Jvjv",
                    "name": "Kbkbkvk",
                    "ownerId": "sZtxdhiNbNY9sr2DtiCzlgJfsqb2",
                    "plan": 0,
                    "purpose": "Jvjv",
                    "recurrence": 1,
                    "segment": "Jvjvjv",
                    "twitterId": "Jvjv",
                    "youtubeId": "Jvj"
                }
            }
        }

1 个答案:

答案 0 :(得分:1)

您可以使用NOT(_exists_:field_name)约束来做到这一点:

你可以试试吗?

http://localhost//elasticsearch/channels/channel/_search?q=channel.schedule.creation_date:[2018-06-19 TO 2018-12-22] OR NOT(_exists_:channel.schedule.creation_date)