как узнать, из какого подтипа был найден результат в elasticsearch?


Всем привет и заранее спасибо,

У меня есть данные, проиндексированные на сервере elasticsearch следующим образом

{
    'main_index':{
        'type':[{
            'name':'john deo',
            'type':'accountant',
            'description':'john deo is a great person',
            'address':'somewhere in the world'
        },
        {
            'name':'calvin kalvin',
            'type':'designer',
            'description':'calvin kalvin is john deo's best friend',
            'address':'somewhere near'
        }]
    }
}

Мой запрос, когда я ищу great person, он также должен вернуть мне свой sub-type, скажем name or type or description or address

Например.:

http://localhost:9200/some-index/type?q=great person

Таким образом, вместе с полным результатом он также должен возвращать свой подтип, т.Е.:description. Я пытался highlighter, но бесполезно.

Пожалуйста, помогите.

Author: dhpratik, 2014-11-11

1 answers

Как насчет этого?

GET /my_index/type/_search?q=great person
{
  "highlight": {
    "fields": {"name": {},"type": {},"description": {},"address": {}}
  }
}

Что дает вам:

 "hits": [
     {
        "_index": "my_index",
        "_type": "type",
        "_id": "1",
        "_score": 0.10848885,
        "_source": {
           "name": "john deo",
           "type": "accountant",
           "description": "john deo is a great person",
           "address": "somewhere in the world"
        },
        "highlight": {
           "description": [
              "john deo is a <em>great</em> <em>person</em>"
           ]
        }
     }
  ]

Если вы также добавите "мир" в поисковый запрос (так что q=great person world), это даст вам:

 "hits": [
     {
        "_index": "my_index",
        "_type": "type",
        "_id": "1",
        "_score": 0.13287117,
        "_source": {
           "name": "john deo",
           "type": "accountant",
           "description": "john deo is a great person",
           "address": "somewhere in the world"
        },
        "highlight": {
           "address": [
              "somewhere in the <em>world</em>"
           ],
           "description": [
              "john deo is a <em>great</em> <em>person</em>"
           ]
        }
     }
  ]
 2
Author: Andrei Stefan, 2014-11-11 11:20:12