2017-03-17 30 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 
     } 

您可以为您的所有字段创建类似的分析器/过滤器,这些分析器/过滤器将为您的用例提供所需的行为。

相关问题