Как отфильтровать возвращенный результат поиска json эластичного поиска только для моих документов

Я использую эластичный поиск AWS и следующие документы для получения своих данных:

эластичный поиск

и конкретно я использую msearch как в javascript следующим образом:

function searchElasticSearchDocument(callback) {
client.msearch({
    body: [
        // match all query, on all indices and types
        {},
        { query: { match_all: {} } },

        // query_string query, on index/mytype
        { _index: 'story', _type: 'mytypeee' },
        { query: { query_string: { query: '"this is click tj test"' } } }
    ]
}, function(error, response){
    console.log("KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK");
    console.log(JSON.stringify(response).replace(/\\/g, ''));
    console.log("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee");
    console.log(JSON.stringify(response));
});

}

Я вижу весь результат следующим образом:

{
"responses": [
    {
        "took": 12,
        "timed_out": false,
        "_shards": {
            "total": 21,
            "successful": 21,
            "failed": 0
        },
        "hits": {
            "total": 24,
            "max_score": 1,
            "hits": [
                {
                    "_index": ".kibana",
                    "_type": "index-pattern",
                    "_id": "test-2222222",
                    "_score": 1,
                    "_source": {
                        "title": "test-2222222",
                        "notExpandable": true,
                        "fields": "[{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"title.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]"
                    }
                },
                {
                    "_index": ".kibana",
                    "_type": "config",
                    "_id": "5.5.2",
                    "_score": 1,
                    "_source": {
                        "buildNum": 15443,
                        "defaultIndex": "test-2222222"
                    }
                },
                {
                    "_index": ".kibana",
                    "_type": "index-pattern",
                    "_id": "myindex444",
                    "_score": 1,
                    "_source": {
                        "title": "myindex444",
                        "notExpandable": true,
                        "fields": "[{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"title.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]"
                    }
                },
                {
                    "_index": ".kibana",
                    "_type": "index-pattern",
                    "_id": "333444",
                    "_score": 1,
                    "_source": {
                        "title": "333444",
                        "notExpandable": true,
                        "fields": "[{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"title.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]"
                    }
                },
                {
                    "_index": ".kibana",
                    "_type": "index-pattern",
                    "_id": "story",
                    "_score": 1,
                    "_source": {
                        "title": "story",
                        "notExpandable": true,
                        "fields": "[{\"name\":\"_id\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_index\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"_score\",\"type\":\"number\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_source\",\"type\":\"_source\",\"count\":0,\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"_type\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"name\":\"title\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"name\":\"title.keyword\",\"type\":\"string\",\"count\":0,\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]"
                    }
                },
                {
                    "_index": "333444",
                    "_type": "mytypeee",
                    "_id": "22",
                    "_score": 1,
                    "_source": {
                        "title": "mazdammm"
                    }
                },
                {
                    "_index": "story",
                    "_type": "mytypeee",
                    "_id": "2000",
                    "_score": 1,
                    "_source": {
                        "title": "this is click tj test. initial phase."
                    }
                },
                {
                    "_index": "story",
                    "_type": "mytypeee",
                    "_id": "3121",
                    "_score": 1,
                    "_source": {
                        "channel_name": "qqqqqqqqthis is click tj test. initial phase.333333333333333"
                    }
                },
                {
                    "_index": "story",
                    "_type": "mytypeee",
                    "_id": "3140",
                    "_score": 1,
                    "_source": {
                        "category_id": "777",
                        "channel_id": "111",
                        "channel_name": "uuuuu  yyyyyy tttttt",
                        "owner": "tjtest",
                        "owner_channel": "tjtest",
                        "byline_name": "tjtest",
                        "byline_publication": "tjtest",
                        "headline": "tjtest",
                        "publish_datetime": "tjtest",
                        "seo_terms": "tjtest",
                        "create_datetime": "tjtest",
                        "modify_datetime": "tjtest",
                        "enabled": "3",
                        "video_url": "tjtest",
                        "cms_source_id": "3"
                    }
                },
                {
                    "_index": "story",
                    "_type": "mytypeee",
                    "_id": "3143",
                    "_score": 1,
                    "_source": {
                        "category_id": "777",
                        "channel_id": "111",
                        "channel_name": "uuuuu  yyyyyy ttttttfffff",
                        "owner": "tjtest",
                        "owner_channel": "tjtest",
                        "byline_name": "tjtest",
                        "byline_publication": "tjtest",
                        "headline": "tjtest",
                        "publish_datetime": "tjtest",
                        "seo_terms": "tjtest",
                        "create_datetime": "tjtest",
                        "modify_datetime": "tjtest",
                        "enabled": "3",
                        "video_url": "tjtest",
                        "cms_source_id": "3"
                    }
                }
            ]
        },
        "status": 200
    },
    {
        "took": 8,
        "timed_out": false,
        "_shards": {
            "total": 21,
            "successful": 21,
            "failed": 0
        },
        "hits": {
            "total": 1,
            "max_score": 4.8003736,
            "hits": [
                {
                    "_index": "story",
                    "_type": "mytypeee",
                    "_id": "2000",
                    "_score": 4.8003736,
                    "_source": {
                        "title": "this is click tj test. initial phase."
                    }
                }
            ]
        },
        "status": 200
    }
]

}

Но так как вам очень сложно разойтись и получить только необходимые документы. Мне просто нужна эта часть:

 {
                    "_index": "333444",
                    "_type": "mytypeee",
                    "_id": "22",
                    "_score": 1,
                    "_source": {
                        "title": "mazdammm"
                    }
                },
                {
                    "_index": "story",
                    "_type": "mytypeee",
                    "_id": "2000",
                    "_score": 1,
                    "_source": {
                        "title": "this is click tj test. initial phase."
                    }
                },
                {
                    "_index": "story",
                    "_type": "mytypeee",
                    "_id": "3121",
                    "_score": 1,
                    "_source": {
                        "channel_name": "qqqqqqqqthis is click tj test. initial phase.333333333333333"
                    }
                },
                {
                    "_index": "story",
                    "_type": "mytypeee",
                    "_id": "3140",
                    "_score": 1,
                    "_source": {
                        "category_id": "777",
                        "channel_id": "111",
                        "channel_name": "uuuuu  yyyyyy tttttt",
                        "owner": "tjtest",
                        "owner_channel": "tjtest",
                        "byline_name": "tjtest",
                        "byline_publication": "tjtest",
                        "headline": "tjtest",
                        "publish_datetime": "tjtest",
                        "seo_terms": "tjtest",
                        "create_datetime": "tjtest",
                        "modify_datetime": "tjtest",
                        "enabled": "3",
                        "video_url": "tjtest",
                        "cms_source_id": "3"
                    }
                },
                {
                    "_index": "story",
                    "_type": "mytypeee",
                    "_id": "3143",
                    "_score": 1,
                    "_source": {
                        "category_id": "777",
                        "channel_id": "111",
                        "channel_name": "uuuuu  yyyyyy ttttttfffff",
                        "owner": "tjtest",
                        "owner_channel": "tjtest",
                        "byline_name": "tjtest",
                        "byline_publication": "tjtest",
                        "headline": "tjtest",
                        "publish_datetime": "tjtest",
                        "seo_terms": "tjtest",
                        "create_datetime": "tjtest",
                        "modify_datetime": "tjtest",
                        "enabled": "3",
                        "video_url": "tjtest",
                        "cms_source_id": "3"
                    }

Есть ли способ в эластичном поиске, который я могу указать, что мне просто нужно вернуть мои документы, или если кто-нибудь может предложить хороший способ, как я могу динамически анализировать возвращенный json, я ценю это?


person Hamed Minaee    schedule 31.10.2017    source источник
comment
Прежде всего, почему вы ищете все индексы (включая индекс .kibana)? Просто используйте client.msearch({ body: [ { _index: 'story', _type: 'mytypeee' }, { query: { query_string: { query: '"this is click tj test"' } } } ]   -  person Andrei Stefan    schedule 01.11.2017
comment
На самом деле это то, что я намереваюсь, и я добавил это для этого в коде: { _index: 'story', _type: 'mytypeee'} но возвращается вышеприведенное   -  person Hamed Minaee    schedule 01.11.2017
comment
Да, но у вас также есть match_all: {}. В моем предложении есть только индекс story и нет match_all.   -  person Andrei Stefan    schedule 02.11.2017
comment
Вы правы, это решит эту проблему, но что касается самого формата, есть ли способ его приукрасить? Если нет или даже если вы не уверены, пожалуйста, добавьте комментарий в качестве ответа, и я приму его. Я думаю, что твой ответ полезен   -  person Hamed Minaee    schedule 02.11.2017


Ответы (1)


Просто используйте следующее (без match_all там):

client.msearch({
    body: [
        { _index: 'story', _type: 'mytypeee' },
        { query: { query_string: { query: '"this is click tj test"' } } }
    ]
}

Что касается формата вывода, вы можете отфильтровать источник или даже отфильтровать все остальные части всего ответа, используя параметр фильтрации ответов.

person Andrei Stefan    schedule 02.11.2017