2013-05-13 85 views
0

我在elasticsearch中創建了一個索引myindex,在其中加載了一些文檔。當我訪問:無法在ES中搜索字段?

localhost:9200/myindex/mytype/1023 

我注意到我的特殊指標有映射以下元數據:

mappings: { 
    mappinggroupname: { 
    properties: { 
     Aproperty: { 
     type: string 
     } 
     Bproperty: { 
     type: string 
     } 
    } 
    } 
} 

是否有某種方式來增加「存儲:是」和索引:「分析」,而無需重新加載/重新索引所有文檔?

注意的是,當我要查看一個單一的文件...

即本地主機:9200/myindex/MYTYPE/1023

我可以看到_source字段包含文檔的所有字段和當我轉到頭部插件的「瀏覽器」部分時,看起來所有的列都是正確的,並且與我的字段名相對應。那麼爲什麼「存儲」沒有顯示在元數據中?我甚至可以對他們進行搜索。

「stored」:「true」與通過上面提到的方法將所有文檔編入索引後可以看到所有字段和值的事實之間有什麼區別?

回答

0

不,沒辦法!這就是你的文檔在底層lucene中的索引。改變它的唯一方法是將它們全部重新索引!

您會看到所有這些字段,因爲您看到lucene中特殊的_source字段的內容,該字段默認通過elasticsearch存儲。您沒有單獨存儲所有字段,但是您擁有最初通過_source(包含整個文檔的單個字段)索引的源文檔。

一般_source字段就夠了,你通常不需要配置每個字段的存儲。

此外,如果未爲所有string字段指定,則缺省值爲"index":"analyzed"。這意味着如果未在映射中指定,則使用標準分析器對這些字段進行索引和分析。因此,就我從映射中可以看出,這兩個字段應該被索引,因此可以搜索。

+0

但是,當我進入我的_head應用程序的「瀏覽器」並且源文檔包含所有字段時,我可以看到所有字段。他們已經在技術上「儲存」了嗎? – Rolando 2013-05-13 17:06:57

+0

我更新了我的答案! – javanna 2013-05-13 17:18:16