2013-04-13 3 views
0

Когда я делаю запрос, как это:Как получить подробный вывод результатов из ElasticSearch

curl 'http://localhost:9200/xenforo/_search?q=message:test' 

я получаю следующий результат:

{ 
    "took": 3, 
    "timed_out": false, 
    "_shards": { 
     "total": 5, 
     "successful": 5, 
     "failed": 0 
    }, 
    "hits": { 
     "total": 1, 
     "max_score": 12.816886, 
     "hits": [ 
      { 
       "_index": "xenforo", 
       "_type": "post", 
       "_id": "1778114", 
       "_score": 12.816886 
      } 
     ] 
    } 
} 

показана важная _id, но как бы я получить дополнительную информацию, такую ​​как дата, информация о пользователе и узле.

Вот некоторые из моих отображения информации, я считаю, что важная часть показана:

curl -X GET 'http://localhost:9200/xenforo/_mapping?pretty=true' 
{ 
    "xenforo113" : { 
    "post" : { 
     "_source" : { 
     "enabled" : false 
     }, 
     "properties" : { 
     "date" : { 
      "type" : "long", 
      "store" : "yes" 
     }, 
     "discussion_id" : { 
      "type" : "long", 
      "store" : "yes" 
     }, 
     "message" : { 
      "type" : "string" 
     }, 
     "node" : { 
      "type" : "long" 
     }, 
     "thread" : { 
      "type" : "long" 
     }, 
     "title" : { 
      "type" : "string" 
     }, 
     "user" : { 
      "type" : "long", 
      "store" : "yes" 
     } 
     } 
    }, 

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

+0

Почему вы отключили поле источника, если оно вам нужно? – dadoonet

+0

Привет, dadoonet, все документы, которые я видел, никогда не показывали, как включить поле _source. Будете ли вы так любезны предоставить пример своего использования или предоставить ссылку. Спасибо. –

ответ

1

Как вы отключили _source, вы должны попросить явных полей:

curl 'http://localhost:9200/xenforo/_search -d '{ 
    "fields" : ["user", "date", "node"], 
    "query" : { 
     "match" : { "message" : "test" } 
    } 
}' 

См documentation.

+0

Это работает отлично. Большое вам спасибо за ваш пример, я в долгу перед тобой. –

+0

@ AndyBajka просто принимает ответ dadoonet, и ваш долг будет считаться оплаченным полностью;) И если вы хотите включить _source, просто установите '' _source ': {"enabled": true} 'вместо' false' – imotov