任何人都能告诉我将此SQL查询映射到弹性搜索查询的最简单方法:
SELECT COUNT(*)
FROM dbo.ProductSearches AS PS
WHERE PS.ProductId = 'SOME_PRODUCT_ID'
AND PS.SearchDate >= 'CURRENT_DATE (NOW)'
AND PS.SearchDate < 'PASTE_DATE (Ex: 2014-01-02)'
谢谢。
答案 0 :(得分:0)
我假设您确实想要在[2014-01-02 TO now]
范围内进行查询 - 因为您的初始SQL正在这样做,反之亦然。
然而它应该看起来像:
curl -XGET http://localhost:9200/ProductSearches/_search -d '
{
"query": {
"bool": {
"must": [
{ "match": { "ProductId": "${productId}" }},
{ "range" : {
"SearchDate" : {
"gte": "${pasteDate}",
"lte": "now"
}
}}
]
}
}
}'
生成的JSON将包含hits.total
字段,该字段在语义上等于count(*)
。