Skip to content
This repository has been archived by the owner on Oct 30, 2021. It is now read-only.

4.6.3: The number of values in the field [...] must be equal to the number of values in the field [...] #110

Closed
jfshiuan opened this issue Jan 26, 2017 · 10 comments
Assignees
Labels
Milestone

Comments

@jfshiuan
Copy link

I'm using Kibana 4.6 (tried both 4.6.2 and 4.6.3), and I'm having problems with Kibi timeline 4.6.3.

The timeline works fine if I just specify the Event start date. As soon as I add an Event end date, I get a bunch of warnings: "Kibi Timeline: Check your data - the number of values in the field 'EndDate' must be equal to the number of values in the field 'CreateDate': document ID=[...]", and none of the events show up in the timeline.

The fields I'm using for the start and end dates are both single-value date fields. I even get the same error message when I use the same field for both start and end date. (i.e. "the number of values in the field 'EndDate' must be equal ... in the field 'EndDate'...")

Kibi timeline 4.5.4 seems to work fine on Kibana 4.6.

@sergibondarenko sergibondarenko self-assigned this Jan 27, 2017
@sergibondarenko sergibondarenko added this to the sprint-5 milestone Jan 27, 2017
@sergibondarenko
Copy link
Contributor

sergibondarenko commented Jan 27, 2017

Hello, @jfshiuan
Could you share the part of your documents that contain start/end dates?

@sergibondarenko
Copy link
Contributor

sergibondarenko commented Jan 27, 2017

@scampi Well, obviously the current issue is related to this PR. I think the @jfshiuan has one or few documents with the number of values in the start field different from the number of values in the end field.
I remember the message the number of values in the field 'EndDate' must be equal ... in the field 'EndDate'... appeared before my PR. But it seems my code disrupted the message. Now there is no message visible anymore. The objects with a different number of start/end values are absent on the timeline. But all other objects are visible.
Now we must decide what behavior we want to implement. Do we need to display the "correct" objects only (like it is now in the PR) plus this warning message?

@sergibondarenko
Copy link
Contributor

sergibondarenko commented Jan 27, 2017

@scampi One correction, the warning message still works. I forgot to check the Notify about errors in the data checkbox. So, this issue will be resolved as soon as my PR is approved.
screenshot from 2017-01-27 17-14-52

@jfshiuan
Copy link
Author

I've just created a index with just one document:
image

Search:
{
"query": {
"match": {
"Name": {
"query": "Test Event",
"type": "phrase"
}
}
}
}

In 4.5.4 this works:
screen shot 2017-01-31 at 10 29 22 am

In 4.6.3 it doesn't:
screen shot 2017-01-31 at 10 36 00 am

@fabiocorneti fabiocorneti modified the milestones: sprint-6, sprint-5 Feb 2, 2017
@fabiocorneti
Copy link
Contributor

Please try the latest release at https://github.com/sirensolutions/kibi_timeline_vis/releases .

@sergibondarenko
Copy link
Contributor

sergibondarenko commented Feb 6, 2017

@jfshiuan, have you tried the latest release? Does it work for you?

@jfshiuan
Copy link
Author

jfshiuan commented Feb 7, 2017

Just tried it. Still having the same issue.

@sergibondarenko
Copy link
Contributor

sergibondarenko commented Feb 8, 2017

@jfshiuan I can't reproduce your issue. Can I have SSH access to the server to look at your data? Actually, we can look together interactively via GNU screen. If it is impossible, could you please check some of your data for me?

  1. Execute the following command, you need to substitude localhost with IP address of your Elasticsearch and 9200 with it's current port.
curl -XGET localhost:9200/.kibi/search/_search?pretty -d @'{"query":{"match":{"title":"Test Search"}}, "size": 10000}'
  1. Among the results, find a document with exact "title" : "Test Search".
  • Get its searchSourceJSON field value. It must be a long JSON format string of the following format "{\"index\":\"YOUR_INDEX_NAME\", ...}".
  • Copy all this string.
  • Delete \"index\":\"YOUR_INDEX_NAME\", from it.
  • Put "size": 10000 before the last closing curly bracket }.
    In the end the string must look like this: {\"query\":{ ALL_OTHER_DATA }, "size": 10000}.
  1. Execute the following command.
curl -XGET localhost:9200/YOUR_INDEX_NAME/_search?pretty -d @'THE_STRING_FROM_THE_STEP_ABOVE'
  1. Share the results of the command above.

@jfshiuan
Copy link
Author

jfshiuan commented Feb 9, 2017

I'm using Kibana 4.6.3 by the way, not Kibi.

searchSourceJSON: "{"index":"test_index","query":{"query_string":{"query":"","analyze_wildcard":true}},"filter":[{"meta":{"negate":false,"index":"test_index","key":"Name","value":"Test Event","disabled":false,"alias":null},"query":{"match":{"Name":{"query":"Test Event","type":"phrase"}}},"$state":{"store":"appState"}}],"highlight":{"pre_tags":["@kibana-highlighted-field@"],"post_tags":["@/kibana-highlighted-field@"],"fields":{"":{}},"require_field_match":false,"fragment_size":2147483647}}"

If I follow step 2 exactly I get a query_parsing_exception (No query registered for [meta]).

If I delete the "filter":[{"meta":.....}] part and try again, I get:
{
"took": 2,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 1,
"hits": [
{
"_index": "test_index",
"_type": "test_event",
"_id": "AVokcrk5N-IqxkqM1Idn",
"_score": 1,
"_source": {
"EndDate": "2016-10-31T00:00:00.000000",
"@timestamp": "2016-10-01T00:00:00.000000",
"StartDate": "2016-10-01T00:00:00.000000",
"Name": "Test Event"
}
}
]
}
}

@sergibondarenko
Copy link
Contributor

@jfshiuan I can reproduce the issue. It will be resolved soon.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants