ユーザーアイコン

mizuko

約1か月前

0
0

OpenSearchで形態素解析を行わず文字列一致検索を実現する

OpenSearch

形態素解析を行わず文字列一致検索を実現した。

マッピングは以下の様に設定

tokenizer: { ngram_tokenizer: { type: 'ngram', min_gram: 1, max_gram: 2, token_chars: ['letter', 'digit', 'punctuation', 'symbol'], }, },

データ取得は、match_phraseを使用して取得する

{ match_phrase: { [`${path}`]: { query: value, }, }, },

math_phraseを使用せずmatchなどを利用した場合、意図しない値がヒットしてしまう。 例えば、「東京都新宿区」がインデックスされている状態で、 「新京」を検索すると、ヒットしてしまう。