"painlessスクリプト"を利用した場合、想定外の挙動が見られました。
恐れ入りますが、不具合か否かご確認願えますでしょうか。
※同内容の投稿を英語でさせて頂きましたが、データに日本語が含まれますので、サンプルデータも含め、こちらで再投稿させて頂いております。
https://discuss.elastic.co/t/nested-data-not-shown-correctly-with-painless-script/157012
以下に挙動発見時の詳細を示します。
- Elasticバージョン: 6.3.1
- マッピング
{
"mappings": {
"_doc": {
"properties": {
"study_id": {
"type": "keyword"
},
"ext_number":{
"type": "keyword"
},
"study_timestamp":{
"type": "date"
},
"study_secondslong":{
"type": "float"
},
"student_learn_rate":{
"type": "float"
},
"additional_study_timestamp":{
"type": "date"
},
"additional_data01":{
"type": "keyword"
},
"additional_data02":{
"type": "keyword"
},
"study_text":{
"type": "text",
"analyzer" : "kuromoji"
},
"study_text_student":{
"type": "text",
"analyzer" : "kuromoji"
},
"study_text_teacher":{
"type": "text",
"analyzer" : "kuromoji"
},
"file_uri":{
"type": "keyword"
},
"book_del_flg":{
"type": "keyword"
},
"teach_cm":{
"type": "double"
},
"student_cm":{
"type": "double"
},
"claim_old":{
"type": "integer"
},
"negative_task":{
"type": "text"
},
"negative_score":{
"type": "float"
},
"teacher":{
"type": "keyword"
},
"teacher_flg":{
"type": "keyword"
},
"claim":{
"type": "integer"
},
"talker_data":{
"type": "nested",
"properties":{
"talker_id":{
"type": "keyword"
},
"version_number":{
"type": "float"
},
"dict_name":{
"type": "keyword"
},
"c_time":{
"type": "float"
},
"u_time":{
"type": "float"
},
"m_time1":{
"type": "float"
},
"m_time2":{
"type": "float"
},
"m_time3":{
"type": "float"
},
"m_time4":{
"type": "float"
},
"tf_done_flg":{
"type": "keyword"
},
"cluster_done_flg":{
"type": "keyword"
},
"evalexp_done_flg":{
"type": "keyword"
},
"get_words_data":{
"type": "nested",
"properties":{
"study_id": {
"type": "keyword"
},
"turn":{
"type": "integer"
},
"learn_begin_timeoffset":{
"type": "float"
},
"learn_end_timeoffset":{
"type": "float"
},
"learn_confidence":{
"type": "keyword"
},
"words_confidence":{
"type": "text"
},
"get_words":{
"type": "text",
"fielddata": true
},
"present_rate":{
"type": "float"
},
"silent_time":{
"type": "float"
},
"learn_position":{
"type": "integer"
},
"study_reason_flg":{
"type": "keyword"
},
"calib_words_confidence":{
"type": "text"
}
}
}
}
}
}
}
}
}
- 発生事象
検索結果の親データと子データの組み合わせが壊れることがあります。
### 正しい親子関係 ###
{
"took" : 57,
"timed_out" : false,
"_shards" : {
:
},
"hits" : {
"total" : 3,
"max_score" : 5.364271,
"hits" : [
{
"_index" : "school",
"_type" : "_doc",
"_id" : "20171106_194842_1111", ##### <===== 親データ
"_score" : 5.364271,
"fields" : {
"test" : [
{
:
"talker_data" : [
{
:
"get_words_data" : [
{
:
"study_id" : "20171106_194842_1111", ##### <===== 子データ
},
:
]
}
],
}
]
}
},
######################################################
### 誤った親子関係 ###
{
"_index" : "school",
"_type" : "_doc",
"_id" : "20171106_194842_2222", ##### <===== 親データ
"_score" : 4.3486114,
"fields" : {
"test" : [
{
:
"talker_data" : [
{
:
"get_words_data" : [
{
:
"study_id" : "20171106_194842_3333", ##### <===== 誤った子データ
:
},
:
]
}
],
}
]
}
},
:
- match_allクエリのみの場合、検索結果は正確に表示されます。
GET school/_search
{
"query": {
"match_all": {}
}
}
### ↓↓↓↓↓ ###
{
:
"hits" : {
"total" : 6,
"max_score" : 1.0,
"hits" : [
{
"_index" : "school",
"_type" : "_doc",
"_id" : "20171106_194842_1111",
"_score" : 1.0,
"_source" : {
:
"talker_data" : [
{
:
"get_words_data" : [
{
"study_id" : "20171106_194842_1111",
:
},
],
}
]
}
},
{
"_index" : "school",
"_type" : "_doc",
"_id" : "20171106_194842_2222",
"_score" : 1.0,
"_source" : {
:
"talker_data" : [
{
:
"get_words_data" : [
{
"study_id" : "20171106_194842_2222",
:
},
],
}
]
}
},
: