0
空值的問題這是我的數據的例子:在Elasticsearch
{
"MOD_DATE_START": "2010-04-20T15:05:49Z",
"MOD_DATE_END": null,
"MOD_ID": "123456789",
}
我有我的Elasticsearch查詢的一些問題。我有幾個日期字段,我正在做一個基於範圍的過濾,以確保我的日期在開始日期和結束日期之間。
我的第一個查詢(效果很好)是過濾的:
curl -s -XPOST http://server:9200/myindex/mytype/_search?pretty=true -d '
{
"fields": ["MOD_ID", "MOD_DATE_START", "MOD_DATE_END"],
"query": {
"bool": {
"must": [
{"term": {"MOD_ID": "123456789"}},
{"range": {"MOD_DATE_START": {"lte": "2012-04-20T15:05:49Z"}}}
]
}
}
}
'
的MOD_DATE_START字段總是包含的信息,所以第一個查詢效果很好。
由於第二日期字段,MOD_DATE_END,是空在大多數情況下,我想修改我的查詢也添加了以下測試:
IF "MOD_DATE_END" NOT NULL then
{"range": {"MOD_DATE_END": {"gte": "2012-04-20T15:05:49Z"}}}
ELSE skip "MOD_DATE_END"
我,不過,不太能弄清楚如何修改我的查詢以添加第三個條件,以便能夠成功執行gte測試。
在此先感謝您的幫助。
非常感謝。查詢看起來不錯。當我再次訪問服務器並且隨後恢復時,將在明天進行測試。 – Soucrit 2014-10-28 18:34:38
我還發現了Elasticsearch腳本,它允許我使用這樣的函數: (mytype ['MOD_DATE_END']。empty?0:mytype ['MOD_DATE_END'] .value) – Soucrit 2014-10-28 18:35:26
@Soucrit是好的,儘管腳本過濾器是通常比內置的更慢。 – keety 2014-10-28 19:10:33