2017-03-17 28 views
0

我有一個ES映射,它有adjustment,organizationcountry字段。我想定義的同義詞,這些具體的領域,例如,例如:Elasticsearch同義詞僅適用於某個字段

SA => Seasonally Adjusted # for adjustment 
SA => Special Analysis # for organization 
SA => Kingdom of Saudi Arabia # for country 

(注意,這是一個人爲的例子,而不是真實數據)

我想這將在兩個索引和查詢時有發生?

如何指定同義詞應爲某一特定領域,使得搜索的SA將返回包含adjustmentSeasonally AdjustedSpecial AnalysisorganizationKingdom of Saudi Arabiacountry所有文件?

另外,我可以基於嵌套文檔嵌套字段來做到這一點。這樣子文檔{ type: country, value: SA }{ type: organization, value: SA }{ type: adjustment, value: SA }會正常工作嗎?

(ES 2.4)

回答

0

您可以創建所有自定義同義詞過濾

例如字段的自定義分析,

分析:

 "country_text_analyzer": { 
      "type": "custom", 
      "tokenizer": "keyword", 
      "filter": [ 
       "lowercase", 
       "country_synonym" 
      ] 
     } 

篩選:

  "country_synonym" : { 
      "type" : "synonym", 
      "synonyms_path": "synonyms/synonyms_countries.txt" //<-- this path is relative to ES_CONFIG location 
     } 

您可以爲您的所有字段創建類似的分析器/過濾器,這些分析器/過濾器將爲您的用例提供所需的行爲。

相關問題