すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:設定ルール

最終更新日:Jan 11, 2025

Alibaba Cloud Elasticsearch では、フィルターを使用してシノニムを設定できます。このフィルターは、Solr および WordNet の 2 つのシノニム形式をサポートしています。

設定例

PUT /test_index
{    
    "settings": {        
        "index" : {            
            "analysis" : {                
                "analyzer" : {                    
                    "synonym" : {                        
                        "tokenizer" : "whitespace",                       
                        "filter" : ["synonym"]                    
                        }               
                   },                
                   "filter" : {                    
                        "synonym" : {                       
                             "type" : "synonym",                        
                              "synonyms_path" : "analysis/synonym.txt",                                          
                              "tokenizer" : "whitespace"                    
                          }               
                       }            
                    }        
                  }    
          }
}

この例では、シノニム辞書ファイルパス analysis/synonym.txt を含む synonym フィルターが filter に設定されています。このパスは設定の場所を示します。パラメーターの詳細については、オープンソースの Elasticsearch ドキュメントのSynonym Token Filterをご参照ください。

Solr シノニム

設定例:
# 空行とポンド記号で始まる行はコメントです。
# 明示的なマッピングは、「=>」の左側の任意のトークンシーケンスと一致し、
# 右側のすべての選択肢に置き換えます。これらのタイプのマッピングは、
# スキーマの expand パラメーターを無視します。
# 例:
i-pod, i pod => ipod,
sea biscuit, sea biscit => seabiscuit
# 等価のシノニムはコンマで区切ることができ、
# 明示的なマッピングは提供されません。この場合、マッピングの動作は、
# スキーマの expand パラメーターから取得されます。これにより、
# 同じシノニムファイルを異なるシノニム処理戦略で使用できます。
# 例:
ipod, i-pod, i pod
foozball , foosball
universe , cosmos
lol, laughing out loud
# expand==true の場合、「ipod, i-pod, i pod」は、
# 次の明示的なマッピングと同等です。
ipod, i-pod, i pod => ipod, i-pod, i pod
# expand==false の場合、「ipod, i-pod, i pod」は、
# 次の明示的なマッピングと同等です。
ipod, i-pod, i pod => ipod
# 複数のシノニムマッピングエントリがマージされます。
foo => foo bar
foo => baz
# は、次のものと同等です。
foo => foo bar, baz
フィルターでシノニムを定義することもできますが、同義語synonyms_path ではなく
PUT /test_index
{
    "settings": {
        "index" : {
            "analysis" : {
                "filter" : {
                    "synonym" : {
                        "type" : "synonym",
                        "synonyms" : [
                            "i-pod, i pod => ipod", // i-pod と i pod を ipod のシノニムとして定義
                            "begin, start" // begin と start をシノニムとして定義
                        ]
                    }
                }
            }
        }
    }
}
説明 ファイル内で大きなシノニム セットを定義するには、synonyms_path を使用することをお勧めします。
を使用する必要があります。サンプルコードは次のとおりです。

WordNet シノニム

設定例:
PUT /test_index
{
    "settings": {
        "index" : {
            "analysis" : {
                "filter" : {
                    "synonym" : {
                        "type" : "synonym",
                        "format" : "wordnet",
                        "synonyms" : [
                            "s(100000001,1,'abstain',v,1,0).",
                            "s(100000001,2,'refrain',v,1,0).",
                            "s(100000001,3,'desist',v,1,0)."
                        ]
                    }
                }
            }
        }
    }
}

この例では、synonyms を使用して WordNet シノニムを定義しています。synonyms_path を使用して WordNet シノニムを定義することもできます。