Я сохраняю данные нескольких файлов в Elasticsearch , используя /cairn/_doc/id
, где id - это уникальный идентификатор файла. Пример данных приведен ниже.
var file = 1;
var meraData = '{"data":[{"page":"1","lineid":"00f6","text":"OIL AND NATURAL ","fileId":"175"},{"page":"1","lineid":"4411","text":"Source Rock Geochemistry","fileId":"175"},{"page":"1","lineid":"c267","text":"CHENNAI -600034","fileId":"175"}]}';
function sendElastic(meraData, file){
$.ajax({
type:'POST',
url: 'https://search-cairn-o3fpbj34hxgttac6b3dnuc37ie.us-east-1.es.amazonaws.com/cairn/_doc/'+file,
data:JSON.stringify(meraData),
contentType: "application/json",
dataType: "json",
success:function(data){
console.log(data);
},
error: function(data){
console.log(data.responseJSON);
}
});
}
После выполнения запроса GET на ответ cairn/_search?q=OIL
, как показано ниже.
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 0.57148063,
"hits": [
{
"_index": "cairn",
"_type": "_doc",
"_id": "1",
"_score": 0.57148063,
"_source": {
"data": [
{
"page": "1",
"lineid": "00f6",
"text": "OIL AND NATURAL ",
"fileId": "175"
},
{
"page": "1",
"lineid": "4411",
"text": "Source Rock Geochemistry",
"fileId": "175"
},
{
"page": "1",
"lineid": "c267",
"text": "CHENNAI -600034",
"fileId": "175"
}
]
}
}
]
}
}
Как изменитьФормат ответа, чтобы показать только точное значение сопоставленного массива в массиве _source.data? Например, для запроса «НЕФТЬ»
{
"page": "1",
"lineid": "00f6",
"text": "OIL AND NATURAL ",
"fileId": "175"
}
должен возвращаться в _source.data
Или возможно сохранить его как /cairn/_doc/id/lineid
?