OpenSearchで形態素解析を行わず文字列一致検索を実現する
OpenSearch
AWS
インフラ
知識
形態素解析を行わず文字列一致検索を実現した。
マッピングは以下の様に設定
ts
tokenizer: {
ngram_tokenizer: {
type: 'ngram',
min_gram: 1,
max_gram: 2,
token_chars: ['letter', 'digit', 'punctuation', 'symbol'],
},
},データ取得は、match_phraseを使用して取得する
ts
{
match_phrase: {
[`${path}`]: {
query: value,
},
},
},math_phraseを使用せずmatchなどを利用した場合、意図しない値がヒットしてしまう。 例えば、「東京都新宿区」がインデックスされている状態で、 「新京」を検索すると、ヒットしてしまう。