2016-08-18 29 views
0

我懷疑我犯了一個新手的錯誤。Elasticsearch索引數據存在,可以查詢,但返回的json是空的

我有一個elasticsearch索引(lswl),它接受來自logtash和winlogbeat的索引(not_analyzed)數據,但我似乎無法檢索它的數據。

當我運行下面的查詢

POST /lswl-2016.08.15/_search?pretty 
{ 
    "query": { 
     "match_all": {} 
    } 
} 

我得到如下結果:

 "hits": { 
     "total": 9, 
     "max_score": 1, 
     "hits": [ 
     { 
      "_index": "lswl-2016.08.15", 
      "_type": "wineventlog", 
      "_id": "AVaLgghl49PiM_pqlihQ", 
      "_score": 1 
     } 

我知道在那裏,因爲像這樣的查詢返回值的子集有數據。

POST /lswl-*/_search?pretty 
{ 
    "query": { 
     "term": { "host": "BTRDAPTST02"} 
    } 
} 

我懷疑,這個問題是在我的了lswl索引創建的模板,但對我的生活我想不出我做了什麼錯誤。該模板在下面供參考。

​​

回答

0

只是刪除下列部分或將其設置爲true

 "_source": { 
      "enabled": false 
     }, 

,然後刪除索引並重新索引數據。之後您將可以看到數據。

+0

我做到了,它開始出現。雖然我有點困惑,但我以爲_source只是用來存儲原始數據的記錄。即使您仍然可以搜索它們,您是否可以不返回沒有_source的字段? – skpuri

+0

是的,你可以,但你需要在字段中指定['store:true'](https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-store.html)喜歡存儲(默認字段不存儲,因爲源被存儲),那麼你可以通過指定字段來檢索它們:[「field1」,「field2」]'。 – Val

+0

感謝Val,非常感謝! – skpuri

相關問題