株式会社スタイリィでは一緒に働く仲間を募集しています
CloudSearchの動的フィールド活用<検索編>
こんにちは、エンジニアの大島です。スギ花粉シーズンが終わって幸せです。
前回に引き続き、CloudSearchの動的フィールドについてです。今回は検索のお話。
全文検索エンジンは使いたい、でも項目が追加変更されてしまう、な条件にぴったりな動的フィールド。便利なのですが、フィールドを指定しないと検索対象にならないというデメリットもあります。
例えば、dynamic_text_*という動的フィールドが定義してあり、dynamic_text_color に '青' というドキュメントが入っていたとします。そこで単に「'青'」で検索してもできず、「field:dynamic_text_color '青'」と指定する必要があるのです。
そこで利用するのがSourceFieldsオプション。
参照先フィールドを指定できるオプションなのですが、動的フィールドを含むフィールドを指定できます。そして、そのSourceFieldsを設定したフィールドが検索対象(SearchEnabled:True)であれば、フィールドを指定しなくても動的フィールドを検索できるようになります。
オプション指定はこんなイメージで。
"Options": { "IndexFieldName": "dynamic_text", "IndexFieldType": "text", "TextOptions": {"SourceFields": "dynamic_text_*, *_text" }
この参照フィールド(SourceFieldsオプション付きのフィールド)を設定することで、単に「'青'」で検索できるようになりました。
ちなみに、参照フィールドを参照するフィールドは定義できませんのでご注意。