2013-02-10 35 views
1

我正在構建詞典並希望使用elasticsearch作爲搜索引擎。它應該支持多國語言,所以我的數據庫看起來與此類似:在同一索引中使用不同的詞幹程序

| left_lang | right_lang | left_word | right_word | 
| de  | en   | Schuh  | shoe  | 
| da  | de   | sko  | Schuh  | 

在哪個級別可以定義不同的分析儀設置(如詞幹等)?我可以爲文檔的每個字段設置不同的設置嗎?例如。在第一個文檔中,使用left_word的德語設置和right_words的英語,第二個使用left_words的丹麥語和right_words的德語。或者我可以在類型或索引級別上定義這些?

回答

2

是的,你可以定義每場的設置。您甚至可以使用「Multi-field」映射定義使用多種語言設置分析的字段。

{ 
    "settings":{ 
    "index":{ 
     "analysis":{ 
      "analyzer":{ 
       "analyzer_english":{ 
       "tokenizer":[...], 
       "filter":[...] 
       }, 
       "analyzer_german":{ 
       "tokenizer":[...], 
       "filter":[...] 
       } 
      } 
     } 
    } 
    }, 
    "mappings":{ 
    "test":{ 
     "properties":{ 
      "left_word":{ 
       "analyzer":"analyzer_german", 
       "type":"string" 
      }, 
      "right_word":{ 
       "analyzer":"analyzer_english", 
       "type":"string" 
      }, 
      "combo_word":{ 
       "type":"multi_field", 
       "fields":{ 
       "combo_word":{ 
        "analyzer":"analyzer_german", 
        "type":"string" 
       }, 
       "combo_english":{ 
        "analyzer":"analyzer_english", 
        "type":"string" 
       } 
       } 
      } 
     } 
    } 
    } 
} 
相關問題