2017-03-17 22 views
0

私はadjustment,organizationおよびcountryフィールドを持つESマッピングを持っています。特定のフィールドのみの弾性検索同義語

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

私は、これは両方のインデックスとクエリ時に起こる推測

(注、これは不自然な例ではなく、実際のデータです):私は、例えば、そのようなことを、これらの特定のフィールドの同義語を定義したいです?

は、どのように私は同義語は、特定のフィールドのSAの検索がcountryorganizationadjustmentSeasonally AdjustedSpecial AnalysisまたはKingdom of Saudi Arabiaを含むすべての文書を返すようなものでなければならないことを指定するのですか?

また、ネストされたドキュメントに基づいてネストされたフィールドでこれを行うことができます。したがって、サブ文書{ 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 
     } 

あなたのユースケースに望ましい動作を提供するすべてのフィールドに対して、同様のアナライザー/フィルターを作成することができます。

関連する問題