Closed aoeuidht closed 5 years ago
"index": { // es index 相关配置 "type": "string", "analyzer": "keyword" },
这种写法看起来像是某种简便的plugin写法,而不是high level描述性的配置文件。包括后面用callback。
我更倾向于将实现细节抽象出去,做成用户也可以写的配置。
尚未覆盖的特殊处理 Search/views.py 108
order_by_stock这种,我认为应该是让“class ProductsSearch”生成sort_field的地方变成一个method,可以被extend或override。可以参考某些framework的plugin的写法来设计。
Recommender/es_search_functions.py 120
这里可以提供两种可能性:
目标是不需要修改core代码,可以添加一些单独为客户开发的plugin代码就可以为客户定制系统的功能。
我认为可以参考一下其他framework怎么给plugin提供接口,以及aspect oriented programming的概念。
@sunliwen 请参加讨论。
我尝试写了一个初始版本。
按照这个配置,覆盖了绝大部分定制化的需求
这些处理方式比较特别,无法简单抽象成配置文件可以处理的方式; 另外系统中对字段的处理散落在各个文件,无法全部使用配置文件。
我建议对不需要特殊处理的字段使用配置文件进行管理,需要额外处理的,保持不便。 如果是新部署服务,没有历史包袱,可以直接使用这种方式来解决自定义字段的问题。