1
/
5

Cloudsearchの動的フィールド活用

こんにちは、エンジニアの大島です。

最近、AWSの全文検索フルマネージドサービスのCloudsearch使っています。検索やDBに使うインスタンス管理がいらないところがとても便利です。

cloudsearchでは検索に使用する列ごとにインデックスを作成するのですが、この再構築コストがかなり大きい。対象のインデックスは再構築中は利用不可となり、検索でヒットしなくなってしまいます。

そこで、「動的フィールド」を利用します。

https://docs.aws.amazon.com/ja_jp/cloudsearch/latest/developerguide/using-dynamic-fields.html

例えば「type_*」という名前でtext型のフィールドを作成すれば、type_atype_xyzも、インデックス再構築をせずにインデックス設定ができます。

「*」というフィールドを作成してしまえば、あらゆるフィールド名のインデックスを同じ型で動的に作成できます。

ただし、この場合は予期していないドキュメントがアップロードされた場合も正常終了してしまうので、ある程度ルールを決めておいて(type_* などを作成し)、それ以外のフィールド名はエラーとする(「*」は作成しない)方が良いかなと思います。作成できるインデックス数にも上限があり、インデックスが増えるとパフォーマンスも低下しますので。

動的フィールドの検索については、フィールド名を指定すればそのままできるのですが、調査中のところもありまた次回以降で。

株式会社スタイリィ's job postings

Weekly ranking

Show other rankings
Like Kohsuke Ohshima's Story
Let Kohsuke Ohshima's company know you're interested in their content