2017-01-30 8 views
0

私のマッピングでシノニムを実装したいと思います。私は親子マッピングを作成しました。ここに私のマッピングがあります。私は弾性検索で同義語をどのように実装できますか?

{ 
    "mapping":{ 
     "mappings":{ 
     "question_data":{ 
      "properties":{ 
       "question_id":{ 
        "type":"integer" 
       }, 
       "question":{ 
        "type":"string" 
       } 
      } 
     }, 
     "answer_data":{ 
      "_parent":{ 
       "type":"question_data" 
      }, 
      "_routing":{ 
       "required":true 
      }, 
      "properties":{ 
       "answer_id":{ 
        "type":"integer" 
       }, 
       "answer":{ 
        "type":"string", 

       } 
      } 
     } 
     } 
    } 
} 

ありがとうございます。

+0

に役立ちます希望はまた、あなたのマッピング – user3775217

+0

を共有することができますか? – Mysterion

答えて

2

elasticsearchでシノニムを使用するには、シノニムアナライザーを最初に作成して、特定のフィールドのシノニムサポートを追加する必要があります。また、設定ではシノニムも定義できます。

PUT testindex_510 
{ 
    "settings": { 
     "analysis": { 
      "analyzer": { 
       "synonymanalyzer": { 
        "tokenizer": "standard", 
        "filter": ["lowercase", "locationsynfilter"] 
       }, 
       "synonymanalyzer1": { 
        "tokenizer": "standard", 
        "filter": ["lowercase", "titlesynfilter"] 
       } 
      }, 
      "filter": { 
       "locationsynfilter": { 
        "type": "synonym", 
        "synonyms": [ 
         "lokhandwala,andheri west", 
         "versova,andheri west", 
         "mazgaon,byculla" 
        ] 
       }, 
       "titlesynfilter": { 
        "type": "synonym", 
        "synonyms": [ 
         "golds , gold", 
         "talwalkars, talwalkar" 
        ] 
       } 
      } 

     } 

    }, 
    "mappings": { 
     "testtype": { 
      "properties": { 
       "title": { 
        "type": "string", 
        "analyzer": "synonymanalyzer1" 
       }, 
       "location": { 
        "type": "string", 
        "analyzer": "synonymanalyzer" 
       } 
      } 
     } 
    } 
} 

上記の設定では、2つの異なるフィールドの2つのアナライザを定義しました。これらのアナライザはsynonmsをサポートし、各アナライザのフィルタに同義語を定義します。

シノニムは、次のようなマッピングで定義するのではなく、別々のtxtファイルでも定義します。

{ 
    "settings": { 
     "analysis": { 
      "analyzer": { 
       "synonymanalyzer": { 
        "tokenizer": "standard", 
        "filter": ["lowercase", "locationsynfilter"] 
       }, 
       "synonymanalyzer1": { 
        "tokenizer": "standard", 
        "filter": ["lowercase", "titlesynfilter"] 
       } 
      }, 
      "filter": { 
       "titlesynfilter": { 
        "type": "synonym", 
        "synonyms_path": "analysis/titlesynonym.txt" 
       }, 
       "locationsynfilter": { 
        "type": "synonym", 
        "synonyms_path": "analysis/locationsynonym.txt" 
       } 
      } 

     } 

    }, 
    "mappings": { 
     "testtype": { 
      "properties": { 
       "title": { 
        "type": "string", 
        "analyzer": "synonymanalyzer1" 
       }, 
       "location": { 
        "type": "string", 
        "analyzer": "synonymanalyzer" 
       } 
      } 
     } 
    } 
} 

あなたのtxtファイルは次のようになります。詳細な設定については、documentationを参照してください。

ipod, i-pod, i pod 
foozball , foosball 
universe , cosmos 

あなたは同義語を持ちたいwherteこれは

+0

ありがとう!それは私に多くを助けます.. –

+0

それは期待どおりに動作します..... –

+0

ありがとう、あなたは答えを受け入れることができますか? – user3775217

関連する問題