我在 Rails 4 项目中使用 elasticsearch-model gem 将我的用户存储在 MySQL 和 Elasticsearch 中。在我的项目中,Elasticsearch 部分用于查找具有某些 MySQL 字段(如 geo_point、birthdate、gender 等)的人……但并非我在 MySQL“用户”表中的每个字段都对用户搜索有用。
所以,我想将所有用户字段存储在 MySQL 中,并且只存储用户在 Elasticsearch 中搜索所需的字段。
为了在创建时只存储必填字段,我重写了方法“as_indexed_json”并使用了:
as_json(only: ['id', 'gender', 'location']
在创建时,一切都很好。但是,当我使用应该只保存在 MySQL 中的字段来更新用户时,无论如何它都会将其添加到 Elasticsearch 中。
例如,我的用户模型有“id”、“gender”、“is_premium”、“status”、“created_at”、“birthdate”、“location”。在 Elasticsearch 中,我只想保存“id”、“gender”、“birthdate”、“location”
我怎样才能做到这一点?谢谢你的帮助。