3
省略形を使用した検索を可能にする既存の/カスタムアナライザを設定しようとしています。たとえば、テキストフィールドが "バンクオブアメリカ"の場合、BOfAまたはBOAを検索すると、BofAなどがこのレコードと一致する必要があります。ElasticSearch - 略語を使用して検索
どうすればいいですか?助けてください。
省略形を使用した検索を可能にする既存の/カスタムアナライザを設定しようとしています。たとえば、テキストフィールドが "バンクオブアメリカ"の場合、BOfAまたはBOAを検索すると、BofAなどがこのレコードと一致する必要があります。ElasticSearch - 略語を使用して検索
どうすればいいですか?助けてください。
おそらくsynonym filterトークンをカスタムアナライザに使用できます。例えば
以下のマッピング
{
"settings": {
"analysis": {
"analyzer": {
"my_analyzer": {
"tokenizer": "standard",
"filter": ["lowercase", "synonym_filter"]
}
},
"filter": {
"synonym_filter": {
"type": "synonym",
"synonyms": [
"bank of america,boa"
],
"expand": true
}
}
}
},
"mappings": {
"document": {
"properties": {
"text": {
"type": "text",
"analyzer": "my_analyzer",
"fielddata": true
}
}
}
}
}
は間違いなくあなたは、リストに多くを追加したり、同義語ファイルを使用することができます。
BOfAまたはBOAのクエリでは、BofAの2つのアプローチが有効です。これらの可能な組み合わせで
1)その他の同義語
"synonyms": [
"bank of america,boa"
"bank of america,bofa"
]
2)または
{
"query": {
"match": {
"text" : {
"query": "bofa",
"fuzziness": 2
}
}
}
}
をそのままabrevationsを維持し、あいまいクエリを使用しますがESにabrevationsを供給するsynoymsが必要になります。