Google Line Chart set value for no data to 0 - google-visualization

I want integrate a google line chart on my raspberry pi terminal to show some statistics about my coffee consumption. If my json have got no value for a date, the line chart should set the value to 0. At the moment, dates with no values have got the value of the day before. Any ideas?
I have used this configuration:
let options = {
hAxis: {
format: 'd.M.yy',
gridlines: {count: 15},
},
vAxis: {
title: 'Cups of Coffee',
},
colors: ['#34495e'],
interpolateNulls : true
};
Dates with no value are not displayed in my json. For example: no entry for the date 3.6.2017 Here is the json:
[{
"_id": {
"year": 2017,
"month": 6,
"day": 9,
"action": "Coffee made"
},
"createdAt": "2017-06-09T06:41:50.904Z",
"count": 1
},
{
"_id": {
"year": 2017,
"month": 6,
"day": 8,
"action": "Coffee made"
},
"createdAt": "2017-06-08T05:44:04.081Z",
"count": 1
},
{
"_id": {
"year": 2017,
"month": 6,
"day": 7,
"action": "Coffee made"
},
"createdAt": "2017-06-07T06:10:01.713Z",
"count": 4
},
{
"_id": {
"year": 2017,
"month": 6,
"day": 6,
"action": "Coffee made"
},
"createdAt": "2017-06-06T05:52:09.775Z",
"count": 2
},
{
"_id": {
"year": 2017,
"month": 6,
"day": 2,
"action": "Coffee made"
},
"createdAt": "2017-06-02T06:03:47.243Z",
"count": 1
},
{
"_id": {
"year": 2017,
"month": 6,
"day": 1,
"action": "Coffee made"
},
"createdAt": "2017-06-01T05:37:31.399Z",
"count": 1
},
{
"_id": {
"year": 2017,
"month": 5,
"day": 31,
"action": "Coffee made"
},
"createdAt": "2017-05-31T05:18:49.220Z",
"count": 1
}
]
Current line chart output (The values of date 2. Jun to 5. June should be 0)

just need to add a row for the missing dates...
use data table method getFilteredRows to check data for a certain day
see following working snippet...
the json is loaded, then starting with the min date in the data,
and ending with the current date, each day is checked for data
if now rows are found, one is added with value of 0
google.charts.load('current', {
callback: function () {
drawChart();
window.addEventListener('resize', drawChart, false);
},
packages:['corechart', 'table']
});
function drawChart() {
var jsonData = [{
"_id": {
"year": 2017,
"month": 6,
"day": 9,
"action": "Coffee made"
},
"createdAt": "2017-06-09T06:41:50.904Z",
"count": 1
},
{
"_id": {
"year": 2017,
"month": 6,
"day": 8,
"action": "Coffee made"
},
"createdAt": "2017-06-08T05:44:04.081Z",
"count": 1
},
{
"_id": {
"year": 2017,
"month": 6,
"day": 7,
"action": "Coffee made"
},
"createdAt": "2017-06-07T06:10:01.713Z",
"count": 4
},
{
"_id": {
"year": 2017,
"month": 6,
"day": 6,
"action": "Coffee made"
},
"createdAt": "2017-06-06T05:52:09.775Z",
"count": 2
},
{
"_id": {
"year": 2017,
"month": 6,
"day": 2,
"action": "Coffee made"
},
"createdAt": "2017-06-02T06:03:47.243Z",
"count": 1
},
{
"_id": {
"year": 2017,
"month": 6,
"day": 1,
"action": "Coffee made"
},
"createdAt": "2017-06-01T05:37:31.399Z",
"count": 1
},
{
"_id": {
"year": 2017,
"month": 5,
"day": 31,
"action": "Coffee made"
},
"createdAt": "2017-05-31T05:18:49.220Z",
"count": 1
}
];
var datePattern = 'd.M.yy';
var formatDate = new google.visualization.DateFormat({
pattern: datePattern
});
var dataTable = new google.visualization.DataTable({
"cols": [
{"label": "Date", "type": "date"},
{"label": "Cups of Coffee", "type":"number"}
]
});
jsonData.forEach(function (row) {
dataTable.addRow([
new Date(row.createdAt),
row.count
]);
});
var startDate = dataTable.getColumnRange(0).min;
var endDate = new Date();
var oneDay = (1000 * 60 * 60 * 24);
for (var i = startDate.getTime(); i < endDate.getTime(); i = i + oneDay) {
var coffeeData = dataTable.getFilteredRows([{
column: 0,
test: function (value, row, column, table) {
var coffeeDate = formatDate.formatValue(table.getValue(row, column));
var testDate = formatDate.formatValue(new Date(i));
return (coffeeDate === testDate);
}
}]);
if (coffeeData.length === 0) {
dataTable.addRow([
new Date(i),
0
]);
}
}
dataTable.sort({column: 0});
var chartLine = new google.visualization.ChartWrapper({
chartType: 'LineChart',
containerId: 'chart',
dataTable: dataTable,
options: {
theme: 'material',
legend: {
position: 'none',
},
chartArea: {
top: 12,
right: 12,
bottom: 48,
left: 48,
height: '100%',
width: '100%'
},
colors: ['#34495e'],
hAxis: {
format: datePattern,
gridlines: {
count: 15
},
},
pointSize: 4,
vAxis: {
title: 'Cups of Coffee',
}
}
});
chartLine.draw();
}
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart"></div>

Related

How do you change the font formatting of a single axis label value

I have a text field ['Region'] with four values {Global, AMER, APAC, EMEA}. I have a simple bar chart and want the label to be bold only for 'Global' but have been unable to do so.
I tried:
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": { "values": [
{"Region": "Global", "Months": 1, "RegionRank":1},
{"Region": "AMER", "Months": -1, "RegionRank":2},
{"Region": "APAC", "Months": 3, "RegionRank":3}, {"Region": "EMEA", "Months": 2, "RegionRank":4}
]},
"layer": [
{
"mark": {
"type": "bar",
"filled": false,
"stroke": "gray",
"strokeDash": [3.6],
"strokeWidth": 3
}
},
{
"mark": {
"type": "text",
"fontSize": 14,
"xOffset": {
"expr": "datum['Months']<0 ? -15:15"
}
},
"encoding": {
"text": {
"field": "Months",
"format": "+.0f"
}
}
}
],
"encoding": {
"y": {
"field": "Region",
"type": "nominal",
"axis": {
"offset": 10,
"title": null,
// problem section
"labelFontWeight": {
"condition": {"test": "datum['Region'] == 'Global'","value":"bold"},
"value":"normal"
}
},
"sort": {
"op": "min",
"field": "RegionRank",
"order": "ascending"
}
},
"x": {
"field": "Months",
"type": "quantitative",
"axis": {"title": null}
}
}
}
but there is no change to the label font weight.
What is interesting is that I switched the result conditions, making the '==Global' result "normal" and the else "bold" and it changed font weight on all the labels to bold. That leads me to believe that my condition is never being evaluated as true. Any ideas why? Is what I want to do - changing a signal value in an axis label - possible?
You mean like this?
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": {
"values": [
{"Region": "Global", "Months": 1, "RegionRank": 1},
{"Region": "AMER", "Months": -1, "RegionRank": 2},
{"Region": "APAC", "Months": 3, "RegionRank": 3},
{"Region": "EMEA", "Months": 2, "RegionRank": 4}
]
},
"layer": [
{
"mark": {
"type": "bar",
"filled": false,
"stroke": "gray",
"strokeDash": [3.6],
"strokeWidth": 3
}
},
{
"mark": {
"type": "text",
"fontSize": 14,
"xOffset": {"expr": "datum['Months']<0 ? -15:15"}
},
"encoding": {"text": {"field": "Months", "format": "+.0f"}}
}
],
"encoding": {
"y": {
"field": "Region",
"type": "nominal",
"axis": {
"offset": 10,
"title": null,
"labelFontWeight": {
"condition": {"test": "datum.label == 'Global'", "value": "bold"},
"value": "normal"
}
},
"sort": {"op": "min", "field": "RegionRank", "order": "ascending"}
},
"x": {"field": "Months", "type": "quantitative", "axis": {"title": null}}
}
}

CoC not sending autocomplete request message to language server

My nvim autocomplete window is not coming up when editing C++ code.
I've been trying to follow this debugging guideline but I haven't had much success. I'm using the Kythe language server configured as follows in coc-settings.json:
{
"languageserver": {
"kythe": {
"command": "/full/path/omitted/kythe_languageserver",
"filetypes": ["python", "go", "java", "cpp", "cc", "c++", "proto"],
"trace.server" : "verbose"
}
}
}
When opening a C++ file and running :CocList services, I can see that the language server has started:
languageserver.kythe [running] python, go, java, cpp, cc, c++, proto
And indeed in the :CocCommand workspace.showOutput, there are messages indicating a successful initialization:
[Trace - 4:45:05 PM] Received response 'initialize - (0)' in 264ms.
Result: {
"capabilities": {
"textDocumentSync": 1,
"hoverProvider": true,
"definitionProvider": true,
"referencesProvider": true
}
}
One thought, is there a missing capability here that is required for autocomplete to come up? In any case, when I edit the file and try to, for example, type std:: expecting some form of autocompletion for that namespace, nothing happens and the only messages sent to the language server seem to be as follows:
[Trace - 4:45:47 PM] Sending notification 'textDocument/didChange'.
Params: {
"textDocument": {
"uri": "[redacted]",
"version": 4
},
"contentChanges": [
{
"text": "[redacted]"
}
]
}
From my limited knowledge, I'm pretty sure that autocompletion also requires a different message type to be sent to the language server, no? textDocument/didChange seems to be only for updating the state.
Edit: Full set of requested capabilities by nvim:
"capabilities": {
"workspace": {
"applyEdit": true,
"workspaceEdit": {
"documentChanges": true,
"resourceOperations": [
"create",
"rename",
"delete"
],
"failureHandling": "textOnlyTransactional"
},
"didChangeConfiguration": {
"dynamicRegistration": true
},
"didChangeWatchedFiles": {
"dynamicRegistration": true
},
"symbol": {
"dynamicRegistration": true,
"symbolKind": {
"valueSet": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26
]
},
"tagSupport": {
"valueSet": [
1
]
}
},
"executeCommand": {
"dynamicRegistration": true
},
"configuration": true,
"workspaceFolders": true
},
"textDocument": {
"publishDiagnostics": {
"relatedInformation": true,
"versionSupport": false,
"tagSupport": {
"valueSet": [
1,
2
]
}
},
"synchronization": {
"dynamicRegistration": true,
"willSave": true,
"willSaveWaitUntil": true,
"didSave": true
},
"completion": {
"dynamicRegistration": true,
"contextSupport": true,
"completionItem": {
"snippetSupport": true,
"commitCharactersSupport": true,
"documentationFormat": [
"markdown",
"plaintext"
],
"deprecatedSupport": true,
"preselectSupport": true
},
"completionItemKind": {
"valueSet": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25
]
}
},
"hover": {
"dynamicRegistration": true,
"contentFormat": [
"markdown",
"plaintext"
]
},
"signatureHelp": {
"dynamicRegistration": true,
"signatureInformation": {
"documentationFormat": [
"markdown",
"plaintext"
],
"parameterInformation": {
"labelOffsetSupport": true
}
}
},
"definition": {
"dynamicRegistration": true
},
"references": {
"dynamicRegistration": true
},
"documentHighlight": {
"dynamicRegistration": true
},
"documentSymbol": {
"dynamicRegistration": true,
"symbolKind": {
"valueSet": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26
]
},
"hierarchicalDocumentSymbolSupport": true,
"tagSupport": {
"valueSet": [
1
]
}
},
"codeAction": {
"dynamicRegistration": true,
"isPreferredSupport": true,
"codeActionLiteralSupport": {
"codeActionKind": {
"valueSet": [
"",
"quickfix",
"refactor",
"refactor.extract",
"refactor.inline",
"refactor.rewrite",
"source",
"source.organizeImports"
]
}
}
},
"codeLens": {
"dynamicRegistration": true
},
"formatting": {
"dynamicRegistration": true
},
"rangeFormatting": {
"dynamicRegistration": true
},
"onTypeFormatting": {
"dynamicRegistration": true
},
"rename": {
"dynamicRegistration": true,
"prepareSupport": true
},
"documentLink": {
"dynamicRegistration": true,
"tooltipSupport": true
},
"typeDefinition": {
"dynamicRegistration": true
},
"implementation": {
"dynamicRegistration": true
},
"declaration": {
"dynamicRegistration": true
},
"colorProvider": {
"dynamicRegistration": true
},
"foldingRange": {
"dynamicRegistration": true,
"rangeLimit": 5000,
"lineFoldingOnly": true
},
"selectionRange": {
"dynamicRegistration": true
}
},
"window": {
"workDoneProgress": true
}
},
Kythe language server does not support auto complete capabilities as of yet.

icCube gauge with multiple band colors

I'm trying to make a gauge and want to have two band colors (wrong/red, good/green). I've an example of the amchart in their online Chart maker https://live.amcharts.com/new/edit/. But I'm not able to get this working in icCube.
current we have icCube reporting version 7.0.0 (5549).
This is my chart JSON:
{
"box": {
"id": "wb695",
"widgetAdapterId": "w28",
"rectangle": {
"left": 1510,
"top": 340,
"right": 1910,
"bottom": 640
},
"zIndex": 901
},
"data": {
"mode": "MDX",
"schemaSettings": {
"cubeName": null,
"schemaName": null
},
"options": {
"WIZARD": {
"measures": [],
"rows": [],
"rowsNonEmpty": false,
"columns": [],
"columnsNonEmpty": false,
"filter": []
},
"MDX": {
"statement": "with \n member [Measures].[Measure1] AS 0.9\n member [Measures].[Measure2] AS 0.1\nSELECT\n\n{[Measures].[Measure1], [Measures].[Measure2]} on 0\n\nFROM [cube]"
},
"DATASOURCE": {}
},
"ic3_name": "mdx Query-5",
"ic3_uid": "m17"
},
"data-render": {
"chartType": {
"label": "Gauge",
"proto": {
"chartPrototype": {
"type": "gauge",
"arrows": [
{
"id": "GaugeArrow-1"
}
],
"axes": [
{
"id": "GaugeAxis-1"
}
]
},
"graphPrototype": {},
"dataProviderType": 3
},
"id": "gauge-chart"
},
"graphsConfiguration": [
{
"graph": {}
}
],
"valueAxes": [],
"trendLinesGuides": {},
"configuredQuadrants": {},
"advanced": {
"titles": [],
"faceAlpha": 0,
"faceBorderAlpha": 0
},
"balloon": {
"offsetX": 8
},
"chartOptions": {
"axes": [
{
"axisAlpha": 0.25,
"bottomText": "SLA",
"bottomTextColor": "#2A3F56",
"tickAlpha": 0.25,
"bandOutlineAlpha": 1,
"bandAlpha": 1,
"bandOutlineThickness": 95,
"bandOutlineColor": "#0095BC",
"id": 1
}
],
"bands": [
{
"alpha": 0.8,
"color": "#B53728",
"endValue": 0.6,
"startValue": 0,
"id": "GaugeBand-1"
},
{
"alpha": 0.6,
"color": "#435035",
"endValue": 1,
"startValue": 0.6,
"innerRadius": 0.69,
"id": "GaugeBand-2"
}
]
},
"ic3Data": {
"chartTypeConfig": {
"pie-chart-donut": {
"chartType": {
"label": "Donut",
"proto": {
"chartPrototype": {
"type": "donut",
"pullOutRadius": 0,
"startDuration": 0,
"legend": {
"enabled": false,
"align": "center",
"markerType": "circle"
},
"innerRadius": "60%"
},
"dataProviderType": 1
},
"id": "pie-chart-donut"
},
"graphsConfiguration": [
{}
],
"valueAxes": [],
"trendLinesGuides": {},
"configuredQuadrants": {},
"advanced": {
"titles": []
},
"balloon": {
"offsetX": 8
},
"chartOptions": {
"showZeroSlices": false,
"labelsEnabled": false,
"innerRadius": "60%",
"startAngle": 270,
"radius": "",
"fontSize": 20,
"color": "#0095BC",
"outlineAlpha": 0.25,
"tapToActivate": false
}
}
}
},
"axes": [
{
"startValue": 0,
"endValue": 1,
"startAngle": -90,
"endAngle": 90
}
],
"valueFormatting": ""
},
"navigation": {
"menuVisibility": {
"back": true,
"axisXChange": "All",
"axisYChange": "All",
"filter": "All",
"reset": true,
"widget": true,
"others": "All"
},
"selectionMode": "disabled"
},
"events": {},
"filtering": {},
"hooks": {}
}
Sorry for the late answer, out of the box it's not possible but you can use hooks to change the javascript options sent to amcharts.
JS / On Widget Options :
function(context, options, $box) {
const bands = [
{
"color": "#00CC00",
"endValue": 300000,
"id": "GaugeBand-1",
"startValue": 0
},
{
"color": "#ffac29",
"endValue": 600000,
"id": "GaugeBand-2",
"startValue": 300000
},
{
"color": "#ea3838",
"endValue": 900000,
"id": "GaugeBand-3",
"innerRadius": "95%",
"startValue": 600000
}
];
options.axes[0]["bands"] = bands;
return options;
}
This should work

Combining "bool" and "terms" query in ElasticSearch v6.2 (on AWS)

I am trying to debug an ElasticSearch query and I could use some help with figuring out what I am doing wrong here.
The problem I am having is when I add a "terms" query on a field, no hits are found when I expect results back.
This is the query WITHOUT the "terms" part:
GET /activity/doc/_search
{
"query":{
"bool":{
"must": [
{
"range": {
"ageMax": {
"gte": 20
}
}
},
{
"range": {
"ageMin": {
"lte": 28
}
}
},
{
"range":{
"activityDate":{
"gte":"2019-06-12T16:23:12.709Z"
}
}
},
{
"geo_distance":{
"distance":"50.0km",
"location.gps":{
"lon":-122.406417,
"lat":37.785834
}
}
}
]
}
}
}
This is the result I get back:
{
"took": 7,
"timed_out": false,
"_shards": {
"total": 3,
"successful": 3,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 4,
"hits": [
{
"_index": "activity",
"_type": "doc",
"_id": "f35980fe-94cb-4c4a-9ee7-84dbace823b0",
"_score": 4,
"_source": {
"ageMax": 68,
"__typename": "Activity",
"photo": {
"bucket": "vevivo8106a3b4577d41ec943f5ff2d7536d38-develop",
"region": "eu-west-1",
"Key": "Facebook_137538237374224/FA5A7B52-48E6-4816-85FD-06AD04721FBF.jpg",
"url": "https://vevivo8106a3b4577d41ec943f5ff2d7536d38-develop.s3.eu-west-1.amazonaws.com/public/Facebook_137538237374224/FA5A7B52-48E6-4816-85FD-06AD04721FBF.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAQUVMMI25HVHW4O5W%2F20190611%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20190611T202205Z&X-Amz-Expires=900&X-Amz-Security-Token=AgoGb3JpZ2luENj%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCWV1LXdlc3QtMSKAAoIYw2UKtl9sRiRSxJ6OpnAhQ1GT4WfSzCWQybWB1ufO%2BGUTP4GFNuB7nmq5Y3wOvhmGdMbCY54Do5GGA1GpW3c0OzUtzu%2FKm5AreF8gLSwcqYBoVCiiPlEHhsJ%2FUINKCdwcFp%2BNWs5czT%2Fj%2BrPa8yqBkQxVbxAc%2BoMxadBhvARlPoYcqdR25vnbaoDewiS%2BFE7UjbvF0HvLcu8G2S6Dgy9r1w0tnZIzj512WsOwj0AsM5MFr7ut1xUdOuyJq8sC4BV8xa8FR7VKFEdYpYJyfId%2B0sTQZcv%2FbOHKDCvdRTvDtzez3GXj6nrEon5mRG81cJdYlRMRWaoEBvbG1Mn0pesqrwUIrf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARACGgwwNDQzODQ5Mjk0NjYiDG%2FxkEMhjuwECcH1%2FyqDBUf9AxuOCXR%2B5MtZfA%2BceNx7gzsai7LmfFpPQcYqd0xv5M0VzkUiPCD5wUP417qDzX5KC9Zft%2BX9C2RKYJoxd0%2Bav%2BsQoN62Mld0wuDRykISJTd5Qknq8FFvWKznD%2BTh2jr%2BWD2LYwhw3gt07p9LZwi9BKV67ktzo5rK77XTLfCFKDZBDiyEUWyrBea1%2BZt45p%2F5O6S7D7yxW0GFYXXrwLfbg2FGJikXDVwmcHnw5s8oh6b9UFNJUZzqllXYA7Tg8S0nkixZuu1O4OBU6mht7YhPng2%2FZLy0k%2FyoaLggHc3lbPpQJYSj1XIXqbZlbS5wSKZyivkUuBJAMFNLcRgj%2BpA0TYCGTwF2zZgxwvWm3H%2B7NDvH%2FrnQajW7ANna6HhS1WZ4fEtnFWNWxArjCJoQk5hQPnkyWyeQda9aAMBDr72hhRTw8PTZkim6nSKxwM4UnQ4jElopt0UbXSKQxusZJFo%2F0UZAgdWg00TdjIgVs3q%2BZ9CMS5jt%2BTbatrCDWDIXKIEuMrqqKanrPDfq60hV0I2BP8poTGT3RczVE7tbfeMLui3E5jGvP9xkoCZfWt9GXZvQWTXinilVonPkHRVGa7sqhygcYh9TmhO18eKiBk7mwO1cwIKlRfTZJBr%2F1xu3IP7oKBG8AOwjSJJx0fDpRLUMCWH%2BC%2BHNiAqjRpShCvX3OFOFRygMa50C0ocdlGrEtKDZBXa2%2BSW4WR0LEeozMeWjJTPF9iA%2FE8GyCscdnx2bMAhccJupAplL7UhCMTdRCJ2SalnNJR7Q49LvG4ryG8OdxhhYZD4n51wVVWlB7fqsP%2Bki8feH77jokiofq3eOU9jFk3SaxbfkzB8%2FcVhtzCrS%2BSswvZaA6AU%3D&X-Amz-Signature=399ae23fe3f01338d1bf79b918c9ce51ffa91c8f705d62ea3b516b0341b60578&X-Amz-SignedHeaders=host"
},
"dateModified": "2019-06-11T20:21:52.870Z",
"version": 1,
"usersWatching": 0,
"createdAt": "2019-06-11T20:22:43.215Z",
"likesCount": 0,
"textData": "Watch a dance movie?",
"enrolledUsers": 0,
"activityDate": "2019-06-19T20:12:44.000Z",
"ageMin": 18,
"dateCreated": "2019-06-11T20:21:52.870Z",
"peopleRequested": 2,
"commentsCount": 0,
"location": {
"address": {
"zipcode": "94108",
"country": "United States",
"city": "San Francisco",
"street": "Stockton St",
"state": null
},
"gps": {
"lon": -122.406417,
"lat": 37.785834
}
},
"enrollmentRequests": 0,
"id": "f35980fe-94cb-4c4a-9ee7-84dbace823b0",
"activityCreatorId": "Facebook_137538237374224",
"category": "Movies::Ballet",
"updatedAt": "2019-06-11T20:22:43.215Z"
}
},
{
"_index": "activity",
"_type": "doc",
"_id": "ce9ab1ee-8fa8-42dd-aeb8-c1a9f58ab6b3",
"_score": 4,
"_source": {
"ageMax": 68,
"__typename": "Activity",
"photo": {
"bucket": "vevivo8106a3b4577d41ec943f5ff2d7536d38-develop",
"region": "eu-west-1",
"Key": "Facebook_137538237374224/FF8E51D9-279B-4EC2-9461-55E2CBFC637A.jpg",
"url": "https://vevivo8106a3b4577d41ec943f5ff2d7536d38-develop.s3.eu-west-1.amazonaws.com/public/Facebook_137538237374224/FF8E51D9-279B-4EC2-9461-55E2CBFC637A.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAQUVMMI25F4QOD3PE%2F20190611%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20190611T203152Z&X-Amz-Expires=900&X-Amz-Security-Token=AgoGb3JpZ2luENj%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCWV1LXdlc3QtMSKAAhy6dUpwqL9847F4NppRj%2FsFwXtJgJQk%2BK6fsSlAzfUwJGEXEDhGrOEs45HiOpHAEN5YoEskPEb6YpfUdLpXanO5TaYp%2F4Q4uiMMTcR9PVPg%2BVFUylTYJQ%2BskQDcqJw%2BPqppZiWvMMEzJNkB335B6gyqLgsJWyl0okgKLknVVKTJAntsGiqfX%2FvVFk94aoMP0Ubv3ymXyxZ9dxqA5Mqe6EbNoxteQMdLQqoZPfXiGQmvDjgfpZph2SCkkOSwp1slGF0vCjOIztj%2B4Rsfq9jfI14Ks6th25SHOZjeB0HEx497KgFyYQFp41ke8u4WsJ91alv8fGpyMhId2b8v%2F%2BwkNsgqrwUIrv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARACGgwwNDQzODQ5Mjk0NjYiDOiqDscm7ZoQvO8lWCqDBZB56K6XqJ565o1bnZc%2Bh5x9JHeAU8kOcaDvSfa8syzOCQTSW%2BORfmPJzKDij5DN%2B4QFSvycY%2BuU%2FTQqfB6F3bbfD8rLr1HsVBFaKzwIOA6RSEDolCJb3Q2ZyazfFPuzOof3BlEFKYrUoqO1x5Ur0K3z8DRsst7TyAMBPxiYnN%2BZMzsxjFXRz7ps24suwvO3Urz0zogJWGP%2FxSvX%2F6386bTo8X9oIPAVhwdjEebzYATCfe02IRPUxXGQHyZ3qVF5Ccy7zioLW2iNVUQawCN26lfcoUq79xt%2F9mygFM36Xyr3cC0EH5dV5hIj6f%2F9GDvjb%2FLex0c3XPBtzgDDdJoLPgU4UFdIyhYlHNrUZN40vpLZqJIBKQkjyUcoSkzW0dhCx0DukjimLScwwUPxEtSb%2BKqk94zbsZUJjnSBzcGf2DjbCYbDs5EZqg0pm8iVCFtAJODIDLktwZUhl%2BCrv9JYv8epzQgIBDBUIPjeudOMLodahv%2BfFwHl9lRLNUZkDPGgmhIby62J5y2pkoJE353mKPs%2BDvqkmqTMy2377DH1IOsrPRmkgWldPpv4uFD5jKN3r9xxQv4LUswzD%2FfPSBG2pgvaUgeE2YcWg3o6CcW4KtUOPLucHLw66lkgcnQ8M9feo3j35z%2B9lSblNTd6rCuVgrxa9zuRzNxpRl37ZSut%2B7VPy%2FcKN05mHsZfvIBVcPXF4SdQwgnH2%2BZz4fNEU75MRLyqud7rKQ47h2pamKL%2F%2BUqPn8tNlAAZNMpQHh1KAyIrE35WBbIMgAZSVRUeXcvHVONTJrMbeVC%2FZ0EYAfnCR8uxBsGWPIcsObXN%2FJAGbLGcMW5QB%2Bu1MTSI0qbLoxtzxK9r9lQwzZ6A6AU%3D&X-Amz-Signature=5bdfec0ae588f234af3f8e6dd75c3c7ed8f85fdb3c333c895d02c6f63bf0a548&X-Amz-SignedHeaders=host"
},
"dateModified": "2019-06-11T20:31:31.646Z",
"version": 1,
"usersWatching": 0,
"createdAt": "2019-06-11T20:32:51.687Z",
"likesCount": 0,
"textData": "Anyone for a dance movie?",
"enrolledUsers": 0,
"activityDate": "2019-06-21T20:31:23.000Z",
"ageMin": 18,
"dateCreated": "2019-06-11T20:31:31.646Z",
"peopleRequested": 2,
"commentsCount": 0,
"location": {
"address": {
"zipcode": "94108",
"country": "United States",
"city": "San Francisco",
"street": "Stockton St",
"state": null
},
"gps": {
"lon": -122.406417,
"lat": 37.785834
}
},
"enrollmentRequests": 0,
"id": "ce9ab1ee-8fa8-42dd-aeb8-c1a9f58ab6b3",
"activityCreatorId": "Facebook_137538237374224",
"category": "Movies::Romance",
"updatedAt": "2019-06-11T20:32:51.687Z"
}
},
{
"_index": "activity",
"_type": "doc",
"_id": "309db646-903c-471e-b045-b1f55ae6cff0",
"_score": 4,
"_source": {
"ageMax": 68,
"__typename": "Activity",
"photo": {
"bucket": "vevivo8106a3b4577d41ec943f5ff2d7536d38-develop",
"region": "eu-west-1",
"Key": "Facebook_137538237374224/18BB874D-F59C-4924-8764-75A25020C61C.jpg",
"url": "https://vevivo8106a3b4577d41ec943f5ff2d7536d38-develop.s3.eu-west-1.amazonaws.com/public/Facebook_137538237374224/18BB874D-F59C-4924-8764-75A25020C61C.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAQUVMMI25F4QOD3PE%2F20190611%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20190611T203026Z&X-Amz-Expires=900&X-Amz-Security-Token=AgoGb3JpZ2luENj%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCWV1LXdlc3QtMSKAAhy6dUpwqL9847F4NppRj%2FsFwXtJgJQk%2BK6fsSlAzfUwJGEXEDhGrOEs45HiOpHAEN5YoEskPEb6YpfUdLpXanO5TaYp%2F4Q4uiMMTcR9PVPg%2BVFUylTYJQ%2BskQDcqJw%2BPqppZiWvMMEzJNkB335B6gyqLgsJWyl0okgKLknVVKTJAntsGiqfX%2FvVFk94aoMP0Ubv3ymXyxZ9dxqA5Mqe6EbNoxteQMdLQqoZPfXiGQmvDjgfpZph2SCkkOSwp1slGF0vCjOIztj%2B4Rsfq9jfI14Ks6th25SHOZjeB0HEx497KgFyYQFp41ke8u4WsJ91alv8fGpyMhId2b8v%2F%2BwkNsgqrwUIrv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARACGgwwNDQzODQ5Mjk0NjYiDOiqDscm7ZoQvO8lWCqDBZB56K6XqJ565o1bnZc%2Bh5x9JHeAU8kOcaDvSfa8syzOCQTSW%2BORfmPJzKDij5DN%2B4QFSvycY%2BuU%2FTQqfB6F3bbfD8rLr1HsVBFaKzwIOA6RSEDolCJb3Q2ZyazfFPuzOof3BlEFKYrUoqO1x5Ur0K3z8DRsst7TyAMBPxiYnN%2BZMzsxjFXRz7ps24suwvO3Urz0zogJWGP%2FxSvX%2F6386bTo8X9oIPAVhwdjEebzYATCfe02IRPUxXGQHyZ3qVF5Ccy7zioLW2iNVUQawCN26lfcoUq79xt%2F9mygFM36Xyr3cC0EH5dV5hIj6f%2F9GDvjb%2FLex0c3XPBtzgDDdJoLPgU4UFdIyhYlHNrUZN40vpLZqJIBKQkjyUcoSkzW0dhCx0DukjimLScwwUPxEtSb%2BKqk94zbsZUJjnSBzcGf2DjbCYbDs5EZqg0pm8iVCFtAJODIDLktwZUhl%2BCrv9JYv8epzQgIBDBUIPjeudOMLodahv%2BfFwHl9lRLNUZkDPGgmhIby62J5y2pkoJE353mKPs%2BDvqkmqTMy2377DH1IOsrPRmkgWldPpv4uFD5jKN3r9xxQv4LUswzD%2FfPSBG2pgvaUgeE2YcWg3o6CcW4KtUOPLucHLw66lkgcnQ8M9feo3j35z%2B9lSblNTd6rCuVgrxa9zuRzNxpRl37ZSut%2B7VPy%2FcKN05mHsZfvIBVcPXF4SdQwgnH2%2BZz4fNEU75MRLyqud7rKQ47h2pamKL%2F%2BUqPn8tNlAAZNMpQHh1KAyIrE35WBbIMgAZSVRUeXcvHVONTJrMbeVC%2FZ0EYAfnCR8uxBsGWPIcsObXN%2FJAGbLGcMW5QB%2Bu1MTSI0qbLoxtzxK9r9lQwzZ6A6AU%3D&X-Amz-Signature=5c5f8e0237e7dc3725617a82db97dfd37c87fe3872a85eabb883100f41aa26e1&X-Amz-SignedHeaders=host"
},
"dateModified": "2019-06-11T20:30:14.449Z",
"version": 1,
"usersWatching": 0,
"createdAt": "2019-06-11T20:31:25.613Z",
"likesCount": 0,
"textData": "Romance Movie Anyone?",
"enrolledUsers": 0,
"activityDate": "2019-06-14T20:31:17.000Z",
"ageMin": 18,
"dateCreated": "2019-06-11T20:30:14.449Z",
"peopleRequested": 1,
"commentsCount": 0,
"location": {
"address": {
"zipcode": "94108",
"country": "United States",
"city": "San Francisco",
"street": "Stockton St",
"state": null
},
"gps": {
"lon": -122.406417,
"lat": 37.785834
}
},
"enrollmentRequests": 0,
"id": "309db646-903c-471e-b045-b1f55ae6cff0",
"activityCreatorId": "Facebook_137538237374224",
"category": "Movies::Romance",
"updatedAt": "2019-06-11T20:31:25.613Z"
}
},
{
"_index": "activity",
"_type": "doc",
"_id": "3a7c629e-803d-4fb9-8b7c-5fac08255649",
"_score": 4,
"_source": {
"ageMax": 62,
"__typename": "Activity",
"photo": {
"bucket": "vevivo8106a3b4577d41ec943f5ff2d7536d38-develop",
"region": "eu-west-1",
"Key": "d70053b2-cbf2-47ea-959e-6b081e00dac9/ECEFB5DB-0F32-4142-A26C-10B7ED120452.jpg",
"url": "https://vevivo8106a3b4577d41ec943f5ff2d7536d38-develop.s3.eu-west-1.amazonaws.com/public/d70053b2-cbf2-47ea-959e-6b081e00dac9/ECEFB5DB-0F32-4142-A26C-10B7ED120452.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAQUVMMI25EVY5X32Z%2F20190612%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20190612T125107Z&X-Amz-Expires=900&X-Amz-Security-Token=AgoGb3JpZ2luEOn%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCWV1LXdlc3QtMSKAAhT4eq9r4GURlO%2B6hQW0PAMKVmFBUtHaI14%2Fz3i0p3WBjCHnlT49PoOXHaUgZKUVWqDQYKsSWthth%2FfV5k%2BRN76Nce%2BZKNfa9Gzpy%2BCUHVY34koYZSPo%2FFLC%2Be5ox3RBBgrpkB%2BzPHkuc4KNyPKIoSr%2BOHolUhRMZIOmRL84lzzttazBpgwIqxacKo6DQha2k%2FJTh5v%2FqDUXxLwr8Bj0DMRVx7PZg4MxLFSAZ0lShUa7H%2BpHKxkA%2F9wFcTPCK32HuvAub32O1qn1N8zBJxqZhLa5YtBA0vydq%2BIUHPsYePDryc0jTmz4MNVcQsrTPddOPkDoD1qX%2BI1pXEStBPV3EPkqrwUIvv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARACGgwwNDQzODQ5Mjk0NjYiDDCSdZ%2BxIQDybtgqASqDBQC%2BvI1sG5B9CqFZNNSl9qiRMnqbvQJ3WU57qsiz4kJftgMBU0nMdhl97p6mDXhJBvqC2vTgnnGiTbrRMr7%2BvNbNzbigkUO0exM%2B7bqxt6ij%2B8gz%2FdLd8T5Faj8j6AzvKGtwHxaGvaG0tCxvJGD%2BNYzOJxS8mae%2Fvf6qgpH%2BzQaf057NaZ9KsNlFZfCDD2CpBT%2FmB05tnzPmLDy5amzyuCyLWZgi7fzB6mqcKBmN0DktWb6RPRyaNFFi6PaJwHIDF%2BL1B3jx%2BmOXMon2Xwki8j9WugGWhQvMAl%2Fug82QoX1bxHegymeesIG052D6e%2F5XieeDwUZZ5IQinTx3eqs3m%2BqFlkxdIRb3JoPRldVm8hNUHG59mEI01r16%2B5SjTJ%2B4yvVR3x2%2BkGV2DY%2FjV5K8PueUHsIlN2hMGepG%2F7Rwg5fMdgg0YX3zEHZuyVdGvcQtXJbpmpYXxsXmRBkhIt3n59%2FtypAKHP1yLzV2Gxp2aYwUGiDVvn%2BsPHlfFL2FM4eil8g6%2FQVmSjZlw3Wa9Ke5HhIq5RV8la4TyOa7ogoAmoiVTlvqNvYgWlWrxl9zij4MgNwZ3S5Z79svhUNS8zHPDCtHru%2FXj81AUaTDsFSU%2BcVH%2BfKZuYVp3xWFAMSWhD3RQ5RT%2B8zCSKfvcI7hnI2i%2BhvAFFdqD8yPKBQ0A17LyYBc%2FAG91JDvw8lOM8fbmHQiMcmnd62V%2FE9RoQ0OAf3mrobMulrwxLKoQd%2F%2F9Hf8G7fVZZFP5jnIDVkIZScY8pZkzjYgftscGjagStFm4UtjM3KKWkBW5kb3zQREEFl9lUNrna4I89rVwxGxHcj0yVso18If2VPv932VzI2b455B2cbLGnswh%2BqD6AU%3D&X-Amz-Signature=72ac408bd3e51780c2ce3a44843365ca70550d07e0d7eb1e8781968ca5bf854e&X-Amz-SignedHeaders=host"
},
"dateModified": "2019-06-12T12:50:51.986Z",
"version": 1,
"usersWatching": 0,
"createdAt": "2019-06-12T12:52:28.461Z",
"likesCount": 0,
"textData": "Movie night?",
"enrolledUsers": 0,
"activityDate": "2019-06-14T12:50:14.000Z",
"ageMin": 18,
"dateCreated": "2019-06-12T12:50:51.986Z",
"peopleRequested": 1,
"commentsCount": 0,
"location": {
"address": {
"zipcode": "94108",
"country": "United States",
"city": "San Francisco",
"street": "Stockton St",
"state": null
},
"gps": {
"lon": -122.406417,
"lat": 37.785834
}
},
"enrollmentRequests": 0,
"id": "3a7c629e-803d-4fb9-8b7c-5fac08255649",
"activityCreatorId": "d70053b2-cbf2-47ea-959e-6b081e00dac9",
"category": "Movies::Ballet",
"updatedAt": "2019-06-12T12:52:28.461Z"
}
}
]
}
}
When I add the "terms" query in the filter like this:
GET /activity/doc/_search
{
"query":{
"bool":{
"must": [
{
"range": {
"ageMax": {
"gte": 20
}
}
},
{
"range": {
"ageMin": {
"lte": 28
}
}
},
{
"range":{
"activityDate":{
"gte":"2019-06-12T16:23:12.709Z"
}
}
},
{
"geo_distance":{
"distance":"50.0km",
"location.gps":{
"lon":-122.406417,
"lat":37.785834
}
}
}
],
"filter": {
"terms":
{
"category": ["Movies::Ballet"]
}
}
}
}
}
I expect to get back only the documents with category 'Movies::Ballet' but I get no hits..
I tried adding the "terms" query to the "must" array but same result.
I appreciate any help with figuring out where I am going wrong
I was finally able to get the query I want to work by changing 2 things:
Changed the category field for my test records to "Movies_Ballet" instead of "Movies::Ballet". I guess the "::" is a special character I was not aware of (someone please correct me if I am wrong here)
Changed the terms query to lowercase like:
"filter": {
"terms": {
"category": [
"movies_romance",
"TWO"
]
}
The expected result is returned.
hope this helps someone save some time

ELASTIC SEARCH SERVICE AWS: scroll api do not give me expected response

I am using scroll api to get search results using scroll_id and my request is :
https://my-es-domain-5euba7647rpc35m5utkiwweds.eu-west-1.es.amazonaws.com/_search/scroll?scroll_id=123
The weird thing is that as a response I am getting this:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 3,
"max_score": 1,
"hits": []
}
}
Is there anything that I am missing here? Why I am not getting the rest of my search results?
As you can see hits property is empty.
EDIT: Just to note that when I try to get all results using scroll api then everything is ok:
https://my-es-domain-5euba7647rpc35m5utkiwweds.eu-west-1.es.amazonaws.com/_search?scroll=5m&size=3
{
"_scroll_id": "123",
"took": 4,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 3,
"max_score": 1,
"hits": [
{
"_index": "movies",
"_type": "movie",
"_id": "2",
"_score": 1,
"_source": {
"title": "Lawrence of Arabia",
"director": "David Lean",
"year": 1962,
"genres": [
"Adventure",
"Biography",
"Drama"
]
}
},
{
"_index": "movies",
"_type": "movie",
"_id": "1",
"_score": 1,
"_source": {
"title": "The Assassination of Jesse James by the Coward Robert Ford",
"director": "Andrew Dominik",
"year": 2007,
"genres": [
"Biography",
"Crime",
"Drama"
]
}
},
{
"_index": "movies",
"_type": "movie",
"_id": "3",
"_score": 1,
"_source": {
"title": "To Kill a Mockingbird",
"director": "Robert Mulligan",
"year": 1962,
"genres": [
"Crime",
"Drama",
"Mystery"
]
}
}
]
}
}
EDIT2: My mistake. When I did first request I was already getting all three results and then when I passed scroll_id as a parameter and tried to get rest of the search results the hits array was empty:)
Maybe you have only 3 documents that match this search?
The first scroll returns them, and the second scroll has no more docs to retrieve