Ответ 1
В массиве fields
_source
load _source
:
{
"stored_fields": [
"_source"
],
"query": {
"term": {
"statuses": "active"
}
},
"script_fields": {
"email": {
"script": "_source.name"
}
}
}
Я запускаю простой запрос:
{
"query": {
"term": {
"statuses": "active"
}
},
"script_fields": {
"test": {
"script": "_source.name"
}
}
}
Проблема в том, что как только я введу script_fields
, я больше не получаю _source
в моих результатах.
Я пробовал:
{
"fields": [
"_all"
],
"query": {
"term": {
"statuses": "active"
}
},
"script_fields": {
"email": {
"script": "_source.name"
}
}
}
и
{
"fields": [
"*"
],
"query": {
"term": {
"statuses": "active"
}
},
"script_fields": {
"email": {
"script": "_source.name"
}
}
}
Но они не имели никакого значения. Есть ли способ получить _source
, возвращенный в дополнение к script_fields
?
В массиве fields
_source
load _source
:
{
"stored_fields": [
"_source"
],
"query": {
"term": {
"statuses": "active"
}
},
"script_fields": {
"email": {
"script": "_source.name"
}
}
}
Это работает для меня:
curl -X DELETE localhost:9200/a
curl -X POST localhost:9200/a/b/c -d '{"title" : "foo"}'
curl -X POST localhost:9200/a/_refresh
echo;
curl localhost:9200/a/_search?pretty -d '{
"fields": [
"_source"
],
"query": {
"match_all": {}
},
"script_fields": {
"title_script": {
"script": "_source.title"
}
}
}'
Вывод:
"hits" : {
# ...
"hits" : [ {
# ...
"_source" : {"title" : "foo"},
"fields" : {
"title_script" : "foo"
}
} ]
}