2015-09-25 127 views
1

我正在嘗試重新索引我的文檔以便它們可排序,這需要進行可排序字段多字段屬性與字符串的「原始」版本得到分析。索引彈性搜索中的多字段屬性

我正在關注this文章,但在使用排序查詢搜索我的文檔時仍然出現錯誤。

我有一個問題,然後關於數據的重新索引...如果我重新索引到這個新的索引doucments,那麼我需要有一些額外的邏輯來設置分析版本和non_analyzed或「原始」版本的字符串呢?還是彈性搜索會自動填充那個?這裏是我的領域是什麼樣子:

{ 
    "entityName": { 
     "type":"string", 
     "fields": { 
      "raw": { 
       "type":"string", 
       "index":"not_analyzed" 
      } 
     } 
    } 
} 

所以,當我索引的文檔具有_source,如:

{ 
... 
"entityName":"Ned Stark" 
... 
} 

請問映射到兩個analyzednot_analyzed場完成或者還有什麼我不得不告訴索引來填寫「原始」屬性?

+0

它應該指數雙雙。你的情況會怎樣? –

+0

@AndreiStefan我會在一秒鐘內更新它。 –

+0

@MattHintzke'_source'不會改變,因爲它在兩種情況下都保持相同的值。他們是如何索引的。所以mutlifields不是要創建多個字段,而是要以不同的方式多次索引邏輯單個字段。例如,不允許使用多個分析儀,但可以使用2個多場,每個場具有不同的分析儀。 – Antoniossss

回答

3

不,你不需要做其他事情。

重新索引文檔後,必須告訴查詢應該在給定的文檔中使用哪個字段。

原始子:

POST /_search 
{ 
    "query": { 
     "match": { 
      "entityName.raw": "foo-bar" 
     } 
    } 
} 

或原分析類型:

POST /_search 
{ 
    "query": { 
     "match": { 
      "entityName": "foo-bar" 
     } 
    } 
}