2017-05-11 65 views
0

我是ElasticSearch新手,所以這是一個非常基本的問題。關鍵字字段應該是數組還是單個字符串?

如果我將字段映射爲索引中的關鍵字,那麼文檔中應該包含該字段的字符串數組?還是一個字符串,所有關鍵字由空格分隔?

如果我的指數看起來像這樣(關鍵字就是我們感興趣的):

{ 
    "esidx_j_cv" : { 
    "mappings" : { 
     "j_cv" : { 
     "properties" : { 
      "Id" : { 
      "type" : "text", 
      "fields" : { 
       "keyword" : { 
       "type" : "keyword", 
       "ignore_above" : 256 
       } 
      } 
      }, 
      "Keyword" : { 
      "type" : "text", 
      "fields" : { 
       "keyword" : { 
       "type" : "keyword", 
       "ignore_above" : 256 
       } 
      } 
      }, 
      "Name" : { 
      "type" : "text", 
      "fields" : { 
       "keyword" : { 
       "type" : "keyword", 
       "ignore_above" : 256 
       } 
      } 
      } 
     } 
     } 
    } 
    } 
} 

應該看看這樣的文件:

{ 
    "_index" : "esidx_j_cv", 
    "_type" : "j_cv", 
    "_id" : "2fab7349-c13f-447a-95fa-984df6836c14", 
    "_score" : 1.0, 
    "_source" : { 
     "Id" : "2fab7349-c13f-447a-95fa-984df6836c14", 
     "Name" : "Jim Bloggs", 
     "Keyword" : [ 
     "San", 
     "Andreas", 
     "Fault", 
     "California" 
     ] 
    } 
} 

或像這樣:

{ 
    "_index" : "esidx_j_cv", 
    "_type" : "j_cv", 
    "_id" : "2fab7349-c13f-447a-95fa-984df6836c14", 
    "_score" : 1.0, 
    "_source" : { 
     "Id" : "2fab7349-c13f-447a-95fa-984df6836c14", 
     "Name" : "Jim Bloggs", 
     "Keyword" : "San Andreas Fault California" 
    } 
    } 

謝謝,

亞當。

+0

您的文檔可以是這些中的任何一個。 :) – Richa

+0

這裏'keyword'只是一個字段名稱,或者是否要將'keyword'類型的值存儲到它中? – avr

回答

0

使用數組將是最習慣的,並且是我的建議。您可以像這樣查詢(這個查詢實際上可以與任一選項一起使用):

GET index/_search 
{ 
    "query": { 
    "match": { 
     "Keyword": "California" 
    } 
    } 
} 
+0

感謝所有的答覆。 –

相關問題