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これは
に役立ちます希望はまた、あなたのマッピング – user3775217
を共有することができますか? – Mysterion